-
- All Implemented Interfaces:
-
com.petterp.floatingx.listener.control.IFxConfigControl,com.petterp.floatingx.listener.control.IFxControl
public class FxBasisControlImpl implements IFxControl, IFxConfigControl
Fx基础控制器实现
-
-
Field Summary
Fields Modifier and Type Field Description private final IFxConfigControlconfigControl
-
Constructor Summary
Constructors Constructor Description FxBasisControlImpl(BasisHelper helper)
-
Method Summary
Modifier and Type Method Description IFxConfigControlgetConfigControl()Unitcancel()关闭fx,并释放所有监听 在普通模式,这相当于干掉当前悬浮窗在全局浮窗,如果当前浮窗个数为0时,我们将移除所有配置监听,比如取消AppLifecycle的订阅 Unithide()隐藏悬浮窗-不会解绑app-lifecycle BooleanisShow()当前浮窗是否显示 ViewgetView()获取正在显示的浮窗内容视图,即通过layoutId或者自定义View传递进来的 View FxViewHoldergetViewHolder()获取浮窗内容视图所对应的Holder FxManagerViewgetManagerView()获取浮窗管理器view,即浮窗底层容器 UnitupdateView(@LayoutRes() Integer resource)更新当前view UnitupdateView(View view)更新当前View UnitupdateView(IFxContextProvider provider)更新当前View,如果要通过view更新视图,建议通过此方法,可以帮助选用合适的context,来避免因context所导致的内存泄漏 UnitupdateViewContent(IFxHolderProvider provider)用于快速刷新视图内容 UnitsetClickListener(Long time, View.OnClickListener clickListener)设置点击事件,同时增加防重 UnitsetClickListener(View.OnClickListener clickListener)设置点击事件 Unitmove(Float x, Float y)移动浮窗到指定位置,该方法会帮助你处理越界问题,默认带动画 Unitmove(Float x, Float y, Boolean useAnimation)移动浮窗到指定位置,该方法会帮助你处理越界问题 UnitmoveByVector(Float x, Float y)按照向量移动浮窗,该方法会帮你处理越界问题 UnitmoveByVector(Float x, Float y, Boolean useAnimation)按照向量移动浮窗,该方法会帮你处理越界问题 UnitsetEnableClick(Boolean isEnable)设置是否启用点击事件 UnitsetEnableAnimation(Boolean isEnable, FxAnimation animationImpl)是否启用动画 UnitsetEnableAnimation(Boolean isEnable)是否启用动画 UnitsetBorderMargin(Float t, Float l, Float b, Float r)设置边框相对应父view的偏移量 UnitsetEnableEdgeAdsorption(Boolean isEnable)启用边缘吸附 UnitsetEdgeAdsorbDirection(FxAdsorbDirection direction)设置边缘吸附方向 UnitsetEdgeOffset(Float edgeOffset)设置边缘偏移量 UnitsetEnableEdgeRebound(Boolean isEnable)启用边缘回弹 UnitsetScrollListener(IFxScrollListener listener)设置滑动监听 UnitsetViewLifecycleListener(IFxViewLifecycle listener)设置view-lifecycle监听 UnitsetEnableSaveDirection(IFxConfigStorage impl, Boolean isEnable)设置允许保存方向 UnitsetEnableSaveDirection(Boolean isEnable)设置方向保存开关 设置之前,请确保已经设置了方向保存实例 UnitclearLocationStorage()清除保存的位置信息 UnitsetEnableTouch(Boolean isEnable)设置是否启用触摸事件 UnitsetDisplayMode(FxDisplayMode mode)设置浮窗展示模式 -
-
Constructor Detail
-
FxBasisControlImpl
FxBasisControlImpl(BasisHelper helper)
-
-
Method Detail
-
getConfigControl
IFxConfigControl getConfigControl()
-
cancel
Unit cancel()
关闭fx,并释放所有监听 在普通模式,这相当于干掉当前悬浮窗
在全局浮窗,如果当前浮窗个数为0时,我们将移除所有配置监听,比如取消AppLifecycle的订阅
-
getViewHolder
FxViewHolder getViewHolder()
获取浮窗内容视图所对应的Holder
-
getManagerView
FxManagerView getManagerView()
获取浮窗管理器view,即浮窗底层容器
-
updateView
Unit updateView(@LayoutRes() Integer resource)
更新当前view
- Parameters:
resource- 新的布局layout
-
updateView
Unit updateView(View view)
更新当前View
-
updateView
Unit updateView(IFxContextProvider provider)
更新当前View,如果要通过view更新视图,建议通过此方法,可以帮助选用合适的context,来避免因context所导致的内存泄漏
-
updateViewContent
Unit updateViewContent(IFxHolderProvider provider)
用于快速刷新视图内容
-
setClickListener
Unit setClickListener(Long time, View.OnClickListener clickListener)
设置点击事件,同时增加防重
-
setClickListener
Unit setClickListener(View.OnClickListener clickListener)
设置点击事件
-
move
Unit move(Float x, Float y)
移动浮窗到指定位置,该方法会帮助你处理越界问题,默认带动画
- Parameters:
x- 要移动到的x坐标y- 要移动到的y坐标
-
move
Unit move(Float x, Float y, Boolean useAnimation)
移动浮窗到指定位置,该方法会帮助你处理越界问题
- Parameters:
x- 要移动到的x坐标y- 要移动到的y坐标useAnimation- 是否使用动画
-
moveByVector
Unit moveByVector(Float x, Float y)
按照向量移动浮窗,该方法会帮你处理越界问题
- Parameters:
x- x坐标要增加或减少的值y- y坐标要增加或减少的值
-
moveByVector
Unit moveByVector(Float x, Float y, Boolean useAnimation)
按照向量移动浮窗,该方法会帮你处理越界问题
- Parameters:
x- x坐标要增加或减少的值y- y坐标要增加或减少的值useAnimation- 是否使用动画
-
setEnableClick
Unit setEnableClick(Boolean isEnable)
设置是否启用点击事件
-
setEnableAnimation
Unit setEnableAnimation(Boolean isEnable, FxAnimation animationImpl)
是否启用动画
- Parameters:
isEnable- 是否启用animationImpl- 具体实现实例
-
setEnableAnimation
Unit setEnableAnimation(Boolean isEnable)
是否启用动画
-
setEnableEdgeAdsorption
Unit setEnableEdgeAdsorption(Boolean isEnable)
启用边缘吸附
-
setEdgeAdsorbDirection
Unit setEdgeAdsorbDirection(FxAdsorbDirection direction)
设置边缘吸附方向
-
setEdgeOffset
Unit setEdgeOffset(Float edgeOffset)
设置边缘偏移量
-
setEnableEdgeRebound
Unit setEnableEdgeRebound(Boolean isEnable)
启用边缘回弹
-
setScrollListener
Unit setScrollListener(IFxScrollListener listener)
设置滑动监听
-
setViewLifecycleListener
Unit setViewLifecycleListener(IFxViewLifecycle listener)
设置view-lifecycle监听
-
setEnableSaveDirection
Unit setEnableSaveDirection(IFxConfigStorage impl, Boolean isEnable)
设置允许保存方向
-
setEnableSaveDirection
Unit setEnableSaveDirection(Boolean isEnable)
设置方向保存开关 设置之前,请确保已经设置了方向保存实例
-
clearLocationStorage
Unit clearLocationStorage()
清除保存的位置信息
-
setEnableTouch
Unit setEnableTouch(Boolean isEnable)
设置是否启用触摸事件
- Parameters:
isEnable- true,则允许悬浮窗拖动
-
setDisplayMode
Unit setDisplayMode(FxDisplayMode mode)
设置浮窗展示模式
- Parameters:
mode- 展示模式FxDisplayMode.Normal 默认模式,可以移动与点击
FxDisplayMode.ClickOnly 禁止移动,只能响应点击事件
FxDisplayMode.DisplayOnly 只能展示,不能移动与响应点击事件
-
-
-
-