1. ホーム
  2. android

LinearLayoutに子要素がある場合、onClickがトリガーされない

2024-01-04 14:51:15

質問

カスタムLinearLayoutに小さいTextViewの子を持たせました。TextViewによってカバーされていない領域をクリックできるようにしたいので、LinearLayoutにclickable=trueとonclicklistenerを設定しましたが、onClickはトリガーされません。TextViewにonclicklistenerを設定すると期待通りに動作するのですが...。

どなたか助けていただけませんか?

ar_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ar_item" android:layout_width="202dp"
    android:layout_height="62dp" android:background="@drawable/bg_item_ar"
    android:clickable="true">

    <TextView android:id="@+id/ar_item_txt"
        android:layout_width="164dp" android:layout_height="fill_parent"
        android:paddingBottom="8dp" android:paddingLeft="8dp"
        android:paddingTop="8dp" android:paddingRight="6dp" android:gravity="center"
        android:background="#50000000" />

</LinearLayout>

私のカスタムLinearLayout

public class ARView extends LinearLayout
{    

    public ARView(final Context context, String name, String id)
    {        
        super(context);  
        getLayoutInflater().inflate(R.layout.ar_item, this ,true);
        LayoutInflater inflater = (LayoutInflater)   getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        inflater.inflate(R.layout.ar_item, null);

        TextView textView = (TextView) findViewById(R.id.ar_item_txt);
        textView.setText(name);

        setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {                   
                Toast t = Toast.makeText(context, "hey!", Toast.LENGTH_SHORT);
                t.show();
            }
        });
    }
}

どのように解決するのですか?

すべての子供たちのために

<ブロッククオート

android:duplicateParentState="true"