android - 布局下的按钮仍然可以触摸

时间:2016-07-14 08:37:47

标签: java android layout

我有一个带有5个按钮的布局,每个按钮都有一个 OnTouchListener ,可以在屏幕上(按钮顶部)滑动框架布局,但之后我的所有5个按钮仍然可以触摸。

  

如何禁用其他布局下的视图的触摸,例如   填充了片段的FrameLayout

<Button
    style="@style/tab_btn"
    android:background="@drawable/village_button"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_height="70dp"
    android:layout_width="70dp"
    android:text=""
    android:onClick="buttonPress"/>

<Button
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:background="@drawable/sidebar_btn"
    android:id="@+id/sidebar_btn4"
    android:layout_marginTop="80dp"
    android:layout_marginLeft="-18dp" />
<Button
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:background="@drawable/sidebar_btn"
    android:id="@+id/sidebar_btn3"
    android:layout_marginTop="120dp"
    android:layout_marginLeft="-18dp" />
<Button
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:background="@drawable/sidebar_btn"
    android:id="@+id/sidebar_btn2"
    android:layout_marginTop="160dp"
    android:layout_marginLeft="-18dp" />
<Button
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:background="@drawable/sidebar_btn"
    android:id="@+id/sidebar_btn"
    android:layout_marginTop="200dp"
    android:layout_marginLeft="-18dp" />
<FrameLayout
    android:layout_width="160dp"
    android:layout_height="match_parent"
    android:layout_marginTop="-17dp"
    android:layout_marginLeft="-176dp"
    android:layout_marginBottom="-17dp"
    android:id="@+id/sidebar"
    android:background="@color/black">

</FrameLayout>

2 个答案:

答案 0 :(得分:3)

我认为您必须将android:clickable="true"添加到FrameLayout

因此,它可以在按钮的

上方捕获触摸或点击事件
<FrameLayout
    android:layout_width="160dp"
    android:layout_height="match_parent"
    android:layout_marginTop="-17dp"
    android:layout_marginLeft="-176dp"
    android:layout_marginBottom="-17dp"
    android:id="@+id/sidebar"
    android:clickable="true"
    android:background="@color/black">

答案 1 :(得分:0)

尝试使用

 bt.setVisible(View.GONE);

在需要禁用的按钮上,如果需要再次使用,可以使用

 bt.setVisible(View.VISIBLE);