我有使用选择器的问题,它不能像我期望的那样工作。我想点击它,然后它给我反应,我选择它(通过长按,但我可能通过编程方式),然后它给了我另一个反应。但是,它对结果没有任何反应......
反应部分:
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="10"
android:padding="5dp"
android:background="@drawable/border_bottom"
>
<LinearLayout
android:layout_weight="9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/selector_row">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/grey"
android:text="@string/tel"/>
<TextView
android:id="@+id/telText"
android:layout_width="wrap_content"
android:textSize="18sp"
android:layout_height="wrap_content"
android:text="@string/blank"/>
</LinearLayout>
<ImageButton
android:layout_weight="1"
android:id="@+id/tel_call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_action_call"
android:background="@drawable/border_left"/>
</TableRow>
selector_row.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:state_pressed="true"
android:drawable="@color/semitransparent_grey"></item>
<item
android:state_selected="true"
android:drawable="@color/semitransparent_blue"></item>
<item
android:drawable="@color/transparent"></item>
</selector>
答案 0 :(得分:1)
创建XML文件并将其放在drawable文件夹中。打开它并编写以下代码:
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:drawable="YOUR IMAGE OR COLOR"
android:state_pressed="true"/>
<item
android:drawable="YOUR IMAGE OR COLOR"
android:state_selected="true"/>
<item
android:drawable="YOUR IMAGE OR COLOR"
android:state_focused="true"/>
</selector>
然后在您的主XML文件中,放置android:background="@drawable/selector.xml"
答案 1 :(得分:1)
感谢所有兄弟们努力回答我。我得到了答案....只需在LinearLayout设置android:clickable =“true”即可。哈,这很傻.....
我记得有人提供相关信息,但我忽略了......对不起他。
答案 2 :(得分:0)
你在期待什么?只有在点击时才会有反应?
尝试删除删除:
android:state_selected="true"
修改强> 这应该是你的选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/my_drawable" android:state_selected="true"></item>
<item android:drawable="@drawable/my_drawable" android:state_pressed="true"></item>
<item android:drawable="@drawable/my_drawable"></item>
</selector>
您遇到的行为是什么?
修改强>
<LinearLayout
android:layout_weight="9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/selector_row"
android:duplicateParentState=true>
我不知道它是否真正解决了问题