当Android上的按钮位于LinearLayout时,onClick不会触发

时间:2015-08-26 23:08:06

标签: java android android-layout android-button

因此,我尝试制作类似于您在滑动下方的选项菜单中的功能,您仍然可以在后台看到相机。我不会发布所有代码,但我已经调试了导致问题的原因。我是Android开发者的菜鸟,但我之前做过一些java编程。

这是我的xml

<me.dontenvy.videotest.MainMenu xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000"
    android:orientation="vertical"
    android:animateLayoutChanges="true"
    android:id="@+id/main_menu">

<!-- this is for the camera -->
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/camera_container">

    <TextureView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/texture"
        android:animateLayoutChanges="true"/>

</RelativeLayout>

<!-- this is for the overlay menu -->
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/slide_menu"
    android:animateLayoutChanges="true"
    android:background="@drawable/transparent_background">

    <Button
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/clear_background"
        android:layout_alignParentBottom="true"
        android:id="@+id/slide_button"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <Button
            android:layout_width="@dimen/circle_nav_button_diameter"
            android:layout_height="@dimen/circle_nav_button_diameter"
            android:background="@drawable/circle_button"
            android:backgroundTint="#050"
            android:id="@+id/take_image_nav_button"/>
    </LinearLayout>
</RelativeLayout>
</me.dontenvy.videotest.MainMenu>

我在MainMenu.java类中添加了onClick侦听器,该类扩展了RelativeLayout。以下是代码https://gist.github.com/colmex/1bd19dd2cfc400b2f870

的其余部分的要点

问题是当@ id / take_image_nav_button在LinearLayout中时,onClick动作不起作用,当我从它的LinearLayout中取出时,onClick动作确实有效。感觉就像LinearLayout以某种方式阻止了点击。我已经尝试了很多我在stackoverflow和其他谷歌搜索中找到的东西,但似乎没有什么能解决它。

1 个答案:

答案 0 :(得分:0)

在您设置android:clickable="false"的按钮的LinearLayout父级上,但这会使其中的所有内容都无法点击。要解决此问题,请将false更改为true

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:clickable="true"> // Change here to true, like this

或者只是删除此属性。