如何防止CoordinatorLayout内的自定义视图拦截其他View的行为

问题描述 投票:0回答:2

这是一个简单的布局:

<CoordinatorLayout>

    <View android:id="+id/view1" />

    <View 
        android:id="+id/view2"
        app:layout_behavior="@string/bottom_sheet_behavior" />

    <CustomView 
        android:id="+id/custom_view" />

</CoordinatorLayout>

现在让我们假设CustomView是最大的,就像它的大小和设备的屏幕一样,虽然它可以是透明的,不应该处理任何触摸输入事件。在这种情况下,我发现在layout_behavior中定义的view2将不再起作用。那为什么会发生这种情况以及如何解决呢?

提前感谢任何想法或答案。

android android-layout android-custom-view android-coordinatorlayout androidx
2个回答
0
投票

如果我理解正确你想要使用的行为

app: layout_behavior = "@ string / bottom_sheet_behavior"

对?作为CoordinatorLayout is a super-powered FrameLayout然后你应该把

<View
    android: id = "+ id / view2"
    app: layout_behavior = "@ string / bottom_sheet_behavior" />

在CustomView下方可以使用的行为。


0
投票

也许我没有正确理解你的问题,但是你不能将clickable设置为false吗?

android:clickable="false"

你可以通过编程方式切换它;

view.isClickable = false //true
© www.soinside.com 2019 - 2024. All rights reserved.