当我点击其父线性布局时,我想更改按钮的文本颜色并修改图像。 图像正在变化,但单击线性布局时文本颜色不会改变。
以下是我在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替换按钮,一切正常。
答案 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事件。