1

親の線形レイアウトをクリックすると、ボタンのテキストカラーを変更し、画像を変更したいと考えています。画像は変更されていますが、線形レイアウトをクリックしてもテキストの色が変更されません。

これがxmlの私のコードです-

<LinearLayout
        android:id="@+id/btn_layout"
        android:layout_width="0.0dip"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1.0"
        android:gravity="center"
        android:clickable="true"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/done"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/done_with_accounts_action"
            android:textColor="@drawable/done_button_text_selector"
            android:focusable="false"
            android:textSize="@dimen/done_button_text_size" />

        <ImageView
            android:id="@+id/done_btn_arrow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:paddingLeft="4dp"
            android:focusable="false"
            android:src="@drawable/done_btn_arrow_bg_selector" />
    </LinearLayout>

**selector xml for button -**

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:color="@color/done_btn_pressed_color" />
    <item android:state_pressed="true" android:color="@color/done_btn_pressed_color" />
    <item android:color="@color/button_text_white_color" />
</selector>

ボタンを TextView に置き換えると、すべて正常に動作します。

4

2 に答える 2

0

解決策を見つけました - 完了ボタンのクリック可能を false に設定する必要があります。これで、親の onClick イベントも認識されます。

onClick イベントがデフォルトで無効になっているため、上記のコードが textView で機能した理由は、親の onClick イベントを認識するためです。

于 2013-07-11T20:18:57.420 に答える