按钮的TextColor不会更改父LinearLayout的单击

时间:2013-07-09 21:38:26

标签: android

当我点击其父线性布局时,我想更改按钮的文本颜色并修改图像。 图像正在变化,但单击线性布局时文本颜色不会改变。

以下是我在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替换按钮,一切正常。

2 个答案:

答案 0 :(得分: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。 也许这就是问题?

答案 1 :(得分:0)

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

为什么上面的代码适用于textView,因为它的onClick事件被默认禁用,因此它识别其父onClick事件。