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

1

在这行中:

 <item android:state_focused="true" android:color="@color/done_btn_pressed_color" />
    <item android:state_pressed="true" android:color="@color/done_btn_pressed_color" />

你把相同的颜色done_btn_pressed_color。也许这就是问题所在?

于 2013-07-09T21:47:58.550 回答
0

我找到了解决方案 - 我必须将完成按钮的可点击设置为 false。现在它还可以识别其父 onClick 事件。

为什么上面的代码与 textView 一起工作,因为它的 onClick 事件被默认禁用,所以它识别它的父 onClick 事件。

于 2013-07-11T20:18:57.420 回答