我有一个表格行,我尝试了很多方法来在它聚焦时改变它的颜色,但它在聚焦时永远不会改变颜色。有什么办法吗?我也试过这个,它在点击时改变了颜色,但只有当它聚焦时:
r.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
if(arg0.isFocused())
{
arg0.setBackgroundColor(Color.BLUE);
//arg0.isFocused();
}
return false;
}});
最佳答案
您需要将行的背景颜色设置为状态列表可绘制(处理选择、按下、 Activity 、非 Activity )。
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Active state -->
<item android:state_selected="true" android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/transparent" />
<!-- Inactive state-->
<item android:state_selected="false" android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/transparent" />
<!-- Pressed state-->
<item android:state_pressed="true" android:drawable="@android:color/yellow" />
<!-- Selected state (using d-pad) -->
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@android:color/yellow" />
</selector>
也试试这些链接,解决你的问题
关于android - 如何在聚焦时更改 TableRow 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274343/