Android 框架布局单击侦听器不起作用

Bip*_*and 6 android android-framelayout

我有一个FrameLayout带有两个嵌套LinearLayouts 的。我想要一个onClickListener()for FrameLayout。经过一番搜索,我得到了一个解决方案clickable="false"

这是我的布局文件:

<FrameLayout
    android:id="@+id/flOuter"
    android:paddingLeft="@dimen/half_margin"
    android:paddingRight="@dimen/half_margin"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:clickable="false"
        android:gravity="center"
        android:id="@+id/flAddIdProof"
        android:background="@drawable/add_background"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:clickable="false"
            android:id="@+id/ivIcon"
            android:src="@drawable/ic_add_black_48dp"
            android:background="@drawable/add_button_border"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        </LinearLayout>

    <LinearLayout
        android:clickable="false"
        android:id="@+id/llLinear"
        android:alpha="0.5"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:enabled="false"
            android:clickable="false"
            android:drawablePadding="@dimen/half_margin"
            android:drawableLeft="@drawable/ic_devices_black_24dp"
            android:hint="Identity Proof"
            android:inputType="none"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <EditText
            android:enabled="false"
            android:clickable="false"
            android:drawableLeft="@drawable/ic_border_color_black_24dp"
            android:hint="Identity Number"
            android:drawablePadding="@dimen/half_margin"
            android:inputType="none"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的点击监听器:

flOuter.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(DeviceInMeeting.this, "detect", Toast.LENGTH_SHORT).show();
    }
});
Run Code Online (Sandbox Code Playgroud)

我不知道如何调试 onClick 侦听器,clickable="false"在我的情况下不起作用。

Pan*_*lan 5

尝试android:clickable="true"在以下代码片段中实现FrameLayout

<FrameLayout    
   android:id="@+id/flOuter"
   android:clickable="true"
   android:focusable="true"
   android:foreground="attr/selectableItemBackground"
   android:paddingLeft="@dimen/half_margin"
   android:paddingRight="@dimen/half_margin"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
Run Code Online (Sandbox Code Playgroud)

并添加android:clickable="false"其他嵌套布局。

<LinearLayout    
   android:id="@+id/flOuter"
   android:clickable="false" />
Run Code Online (Sandbox Code Playgroud)


Akh*_*thi 3

你用错了。尝试使用:

<FrameLayout
    android:id="@+id/flOuter"
    android:paddingLeft="@dimen/half_margin"
    android:paddingRight="@dimen/half_margin"
    android:layout_width="match_parent"
    android:clickable="true"
    android:layout_height="wrap_content">

    // Other layouts there

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)