5

アイコンとテキストをグループ化するために、それらをlinearlayoutにグループ化し、線形レイアウトのリスナーを実装しました。

<LinearLayout
        android:id="@+id/ll0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_horizontal"
        android:orientation="vertical" >
        <ImageButton
            android:id="@+id/imageButton0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:src="@drawable/start" />
        <TextView
            android:id="@+id/textView0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Start"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </LinearLayout>

私は次の方法でリスナーを実装しました:-

l0 = (LinearLayout)findViewById(R.id.ll0);
l0.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {
            //Some Code
        }
    });

私が直面している問題は、アイコンをクリックすると、リスナーが応答しないように見えることです。テキストビューとアイコンの間のスペースをクリックすると、リスナーが機能しました。特定のポイントではなく、全体をクリック可能にしたいと思います。

4

1 に答える 1

6

ImageButtonこれはクリック可能なビューであり、クリックをキャプチャしているため、LinearLayoutがクリックイベントを受信できないと思います。android:clickable="false"を定義するXMLに追加してみてくださいImageButton

ただし、より適切な答えは、複合ドローアブルを使用することです。ImageViewとTextViewを含むLinearLayoutの代わりに複合ドローアブルを使用するにはどうすればよいですかを参照してください。基本的に、をandroid:drawableTop="@drawable/start"定義するXMLに追加しTextViewLinearLayoutImageButtonを完全に廃止することができます。次に、のクリックを処理しますTextView

于 2013-03-06T21:02:06.520 に答える