-
- All Implemented Interfaces:
-
com.petterp.floatingx.listener.control.IFxControl
public abstract class FxBasisControlImp<F extends FxBasisHelper, P extends IFxPlatformProvider<F>> implements IFxControl
Fx基础控制器,用于协调各provider的分发
-
-
Field Summary
Fields Modifier and Type Field Description private final IFxConfigControlconfigControl
-
Constructor Summary
Constructors Constructor Description FxBasisControlImp(F helper)
-
Method Summary
Modifier and Type Method Description IFxConfigControlgetConfigControl()FloatgetX()获取相对浮窗容器的 x坐标 FloatgetY()获取相对浮窗容器的 y坐标 BooleanisShow()当前浮窗是否显示 ViewgetView()获取正在显示的浮窗内容视图,即通过layoutId或者自定义View传递进来的 View FxViewHoldergetViewHolder()获取浮窗内容视图所对应的Holder FrameLayoutgetManagerView()获取浮窗管理器view,即浮窗底层容器 abstract PcreatePlatformProvider(F f)IFxConfigControlcreateConfigProvider(F f, P p)IFxAnimationProvidercreateAnimationProvider(F f, P p)final UnitinitProvider()Unitshow()Unithide()隐藏悬浮窗-不会解绑app-lifecycle Unitcancel()关闭fx,并释放所有监听 在普通模式,这相当于干掉当前悬浮窗在全局浮窗,如果当前浮窗个数为0时,我们将移除所有配置监听,比如取消AppLifecycle的订阅 UnitupdateView(@LayoutRes() Integer resource)更新当前view UnitupdateView(View view)更新当前View UnitupdateView(IFxContextProvider provider)更新当前View,如果要通过view更新视图,建议通过此方法,可以帮助选用合适的context,来避免因context所导致的内存泄漏 UnitupdateViewContent(IFxHolderProvider provider)用于快速刷新视图内容 UnitsetClickListener(Long time, View.OnClickListener listener)设置点击事件,同时增加防重 UnitsetClickListener(View.OnClickListener listener)设置点击事件 UnitsetLongClickListener(View.OnLongClickListener listener)设置长按事件 Unitmove(Float x, Float y)移动浮窗到指定位置,该方法会帮助你处理越界问题,默认带动画 Unitmove(Float x, Float y, Boolean useAnimation)移动浮窗到指定位置,该方法会帮助你处理越界问题 UnitmoveByVector(Float x, Float y)按照向量移动浮窗,该方法会帮你处理越界问题 UnitmoveByVector(Float x, Float y, Boolean useAnimation)按照向量移动浮窗,该方法会帮你处理越界问题 UnitupdateConfig(Function1<IFxConfigControl, Unit> obj)-
-
Constructor Detail
-
FxBasisControlImp
FxBasisControlImp(F helper)
-
-
Method Detail
-
getConfigControl
IFxConfigControl getConfigControl()
-
getViewHolder
FxViewHolder getViewHolder()
获取浮窗内容视图所对应的Holder
-
getManagerView
FrameLayout getManagerView()
获取浮窗管理器view,即浮窗底层容器
-
createPlatformProvider
abstract P createPlatformProvider(F f)
-
createConfigProvider
IFxConfigControl createConfigProvider(F f, P p)
-
createAnimationProvider
IFxAnimationProvider createAnimationProvider(F f, P p)
-
initProvider
final Unit initProvider()
-
cancel
Unit cancel()
关闭fx,并释放所有监听 在普通模式,这相当于干掉当前悬浮窗
在全局浮窗,如果当前浮窗个数为0时,我们将移除所有配置监听,比如取消AppLifecycle的订阅
-
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 listener)
设置点击事件,同时增加防重
-
setClickListener
Unit setClickListener(View.OnClickListener listener)
设置点击事件
-
setLongClickListener
Unit setLongClickListener(View.OnLongClickListener listener)
设置长按事件
-
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- 是否使用动画
-
updateConfig
Unit updateConfig(Function1<IFxConfigControl, Unit> obj)
-
-
-
-