diff --git a/app/src/main/java/com/petterp/floatingx/app/test/ScopeActivity.kt b/app/src/main/java/com/petterp/floatingx/app/test/ScopeActivity.kt index e18c01cb..b782f484 100644 --- a/app/src/main/java/com/petterp/floatingx/app/test/ScopeActivity.kt +++ b/app/src/main/java/com/petterp/floatingx/app/test/ScopeActivity.kt @@ -85,6 +85,24 @@ class ScopeActivity : AppCompatActivity() { addItemView("允许触摸事件(允许拖动)-默认允许") { scopeFx.configControl.setDisplayMode(FxDisplayMode.Normal) } + addItemView("长按移动模式(解决内容滑动冲突)") { + scopeFx.configControl.setDisplayMode(FxDisplayMode.LongPressMove) + } + addItemView("测试长按移动模式 - 带可点击子视图") { + scopeFx.configControl.setDisplayMode(FxDisplayMode.LongPressMove) + scopeFx.updateView(R.layout.item_floating_clickable) + // Add click listeners to test immediate response + scopeFx.setViewLifecycle(object : com.petterp.floatingx.listener.IFxViewLifecycle { + override fun initView(holder: com.petterp.floatingx.view.FxViewHolder) { + holder.getView(R.id.btnClickMe)?.setOnClickListener { + Toast.makeText(this@ScopeActivity, "Button clicked immediately!", Toast.LENGTH_SHORT).show() + } + holder.getView(R.id.tvClickable)?.setOnClickListener { + Toast.makeText(this@ScopeActivity, "Clickable text clicked!", Toast.LENGTH_SHORT).show() + } + } + }) + } addItemView("隐藏悬浮窗") { scopeFx.hide() } diff --git a/app/src/main/java/com/petterp/floatingx/app/test/SimpleRvActivity.kt b/app/src/main/java/com/petterp/floatingx/app/test/SimpleRvActivity.kt index d4b741bc..8f44e3a7 100644 --- a/app/src/main/java/com/petterp/floatingx/app/test/SimpleRvActivity.kt +++ b/app/src/main/java/com/petterp/floatingx/app/test/SimpleRvActivity.kt @@ -70,6 +70,13 @@ class SimpleRvActivity : AppCompatActivity() { if (customAdapter.sum < 0) customAdapter.sum = 1 customAdapter.notifyDataSetChanged() } + addItemView("设置长按移动模式") { + FloatingX.controlOrNull(TAG)?.configControl?.setDisplayMode(FxDisplayMode.LongPressMove) + Toast.makeText(this@SimpleRvActivity, "长按移动模式:点击Header或RV即时响应,长按空白区域移动", Toast.LENGTH_LONG).show() + } + addItemView("设置普通移动模式") { + FloatingX.controlOrNull(TAG)?.configControl?.setDisplayMode(FxDisplayMode.Normal) + } } } } @@ -97,6 +104,11 @@ class SimpleRvActivity : AppCompatActivity() { 500, 200, ) + // Make header clickable to test immediate response in LongPressMove mode + isClickable = true + setOnClickListener { + Toast.makeText(context, "Header clicked immediately!", Toast.LENGTH_SHORT).show() + } } val rv = RecyclerView(context).apply { layoutParams = ViewGroup.LayoutParams( diff --git a/app/src/main/res/layout/item_floating_clickable.xml b/app/src/main/res/layout/item_floating_clickable.xml new file mode 100644 index 00000000..5e1a7472 --- /dev/null +++ b/app/src/main/res/layout/item_floating_clickable.xml @@ -0,0 +1,41 @@ + + + + +