【问题标题】:Why am I able to click "behind" the bottomsheet in Android?为什么我可以在 Android 中点击底部表格的“后面”?
【发布时间】:2020-11-23 17:32:10
【问题描述】:

我的活动中有一个BottomSheet

我正在调用behavior.setState(BottomSheetBehavior.STATE_EXPANDED); 来显示底部工作表,它工作正常,但我遇到的问题是我可以以某种方式单击底部工作表的空白区域以触发视图的onClick 事件在底片后面。

有没有办法防止这种情况发生?

【问题讨论】:

  • 您使用的是什么版本的支持库?您是否已升级到最新版本(截至目前为 24.2.1)?
  • 是的,我使用的是 24.2.1。
  • 我发现了一个与此处stackoverflow.com/questions/37596701/… 完全相同的问题,但似乎还没有答案
  • 你找到答案了吗?
  • 这仍然是最新支持库的问题

标签: android bottom-sheet


【解决方案1】:

一个简单的解决方案是添加

android:clickable="true"

归因于您用于底页的布局。这样,它将捕获所有点击,而不是让他们流血。您不必为它设置onClick 方法,因为您不需要处理它们。

【讨论】:

  • 我尝试将 clickable=true 设置为父视图,但没有成功:(
  • 请发布布局。
  • 如果android:clickable="false" 不起作用,请在底部工作表展开时尝试在按钮表下方的可点击控件上setEnable(false)。使用slideOffset获取滑动方向
  • 你也可以在你的代码中设置bottomSheet.setClickable(false);
  • @NishchayZacariah 如果一个视图不可点击,它将允许触摸转到它下面的视图。例如,你可能在一个按钮中有一个 imageView,但由于它不可点击,它允许点击到它下面的按钮。
【解决方案2】:

我遇到了同样的问题!

android:clickable=true 添加到您的BottomSheet !应该如下所示!

     <LinearLayout
        android:clickable="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/materialWhite"
        android:orientation="vertical"
        app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">

</LinearLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多