-
Notifications
You must be signed in to change notification settings - Fork 132
3. Api总览
Petterp edited this page Oct 26, 2022
·
9 revisions
FloatingX.init {
// 设置悬浮窗layout
setLayout(R.layout.item_floating)
// 设置悬浮窗View, 与上面二选一
setLayoutView(TextView(applicationContext))
// 设置悬浮窗默认方向
setGravity(Direction.RIGHT_OR_BOTTOM)
// 设置是否启用日志
setEnableLog(true)
// 启用辅助方向
setEnableAssistDirection(0f, 0f, 0f, 100f)
// 设置x轴默认坐标
setX()
// 设置y轴默认坐标
setY()
// 设置启用边缘吸附
setEnableEdgeAdsorption(true)
// 设置边缘偏移量
setEdgeOffset(10f)
// 设置启用悬浮窗可屏幕外回弹
setEnableScrollOutsideScreen(true)
// 设置辅助方向辅助
// 设置点击事件
setOnClickListener { }
// 设置view-lifecycle监听
setViewLifecycle()
// 设置启用悬浮窗位置修复
setEnableAbsoluteFix(true)
// 设置启用动画
setEnableAnimation(true)
// 设置启用动画实现
setAnimationImpl(FxAnimationImpl())
// 设置方向保存impl
setSaveDirectionImpl(FxConfigStorageToSpImpl(applicationContext))
// 使用默认
defaultSaveDirection(applicationContext)
// 设置底部偏移量
setBorderBorderMargin(100f)
// 设置顶部偏移量
setTopBorderMargin(100f)
// 设置左侧偏移量
setLeftBorderMargin(100f)
// 设置右侧偏移量
setRightBorderMargin(100f)
// 设置悬浮窗LayoutParams(1.0.3已废弃,建议在setLayout时一并传递,对setLayoutView的浮窗无效)
setLayoutParams()
/** 指定浮窗可显示的activity方式,黑名单功能 */
// 1.设置是否允许所有activity都进行显示,默认true
setEnableAllInstall(true)
// 2.禁止插入Activity的页面, setEnableAllBlackClass(true)时,此方法生效
// addInstallBlackClass(BlackActivity::class.java)
// 3.允许插入Activity的页面, setEnableAllBlackClass(false)时,此方法生效
// addInstallWhiteClass()
// 设置允许触摸事件,默认true,false即禁止activity
setEnableTouch(true)
// 设置tag-Activity生命周期回调时的触发
setTagActivityLifecycle(object : FxTagActivityLifecycleImpl() {
override fun onCreated(activity: Activity, bundle: Bundle?) {
// 允许插入的浮窗activity执行到onCreated时会回调相应方法
}
})
// 设置是否启用日志,tag:自定义的tag
setEnableLog(BuildConfig.DEBUG,"xx")
// 开启悬浮窗
enableFx()
}
/** 获取配置层控制器,以便运行时动态调整某些基础配置
* */
val helperControl: IFxHelperControl
/** 显示悬浮窗 */
fun show()
/** 隐藏悬浮窗-不会解绑app-lifecycle
* */
@MainThread
fun hide()
/**
* 当前是否显示
* @return 是否显示
* */
fun isShow(): Boolean
/**
* 关闭fx,并释放所有监听
* 在普通模式,这相当于干掉当前悬浮窗
* 在全局application,这等于只保留helper,移除其他所有监听
* */
fun cancel()
/** 获取悬浮窗view
* @return 悬浮窗view->managerView
* */
fun getManagerView(): FxMagnetView?
fun getManagerViewHolder(): FxViewHolder?
/** 获取传递进去的layout对应的悬浮窗view */
fun getView(): View?
/** 更新params
* @param params 悬浮窗管理器的layoutParams
* */
@MainThread
fun updateParams(params: ViewGroup.LayoutParams)
/** 提供一个回调入口,用于快捷刷新
* @param obj
* */
@MainThread
fun updateView(obj: (FxViewHolder) -> Unit)
/**
* 更新当前view
* @param resource 新的布局layout
* */
@MainThread
fun updateManagerView(@LayoutRes resource: Int)
/** 更新当前View,如果要通过view更新视图,建议通过此方法,可以帮助选用合适的context,来避免因context所导致的内存泄漏 */
@MainThread
fun updateManagerView(obj: (context: Context) -> View)
/** 设置点击事件 */
fun setClickListener(time: Long = 500L, obj: (View) -> Unit)
fun show(activity: Activity)
fun detach(activity: Activity)
/** 获得当前绑定的activity,不要手动保留此activity,以避免泄漏 */
fun getBindActivity(): Activity?
// 在指定viewGroup中添加一个浮窗
fun init(viewGroup: ViewGroup): T
// 在指定fragment中添加一个浮窗
fun init(fragment: Fragment): T
// 在指定activity中添加一个浮窗
fun init(activity: Activity): T
/** 是否启用动画
* @param isEnable 是否启用
* @param animationImpl 具体实现实例
* */
fun setEnableAnimation(isEnable: Boolean, animationImpl: FxAnimation)
/** 是否启用动画 */
fun setEnableAnimation(isEnable: Boolean)
/** 设置边框相对应父view的偏移量 */
fun setBorderMargin(t: Float, l: Float, b: Float, r: Float)
/** 设置是否启用点击事件 */
fun setEnableClick(isEnable: Boolean)
/** 设置边缘偏移量 */
fun setEdgeOffset(edgeOffset: Float)
/** 启用位置修复 */
fun setEnableAbsoluteFix(isEnable: Boolean)
/** 启用边缘回弹
* */
fun setEnableEdgeRebound(isEnable: Boolean)
/** 设置是否启用触摸事件
* @param isEnable true,则允许悬浮窗拖动
* */
fun setEnableTouch(isEnable: Boolean)
/**
* 启用边缘吸附
* */
fun setEnableEdgeAdsorption(isEnable: Boolean)
/** 设置滑动监听 */
fun setScrollListener(listener: IFxScrollListener)
/** 设置view-lifecycle监听 */
fun setViewLifecycleListener(listener: IFxViewLifecycle)
/** 设置允许保存方向 */
fun setEnableSaveDirection(impl: IFxConfigStorage, isEnable: Boolean = true)
/** 设置方向保存开关
* 设置之前,请确保已经设置了方向保存实例
* */
fun setEnableSaveDirection(isEnable: Boolean = true)
/** 清除保存的位置信息 */
fun clearLocationStorage()