android - 如何在聚焦时更改 TableRow 的背景颜色?

标签 android

我有一个表格行,我尝试了很多方法来在它聚焦时改变它的颜色,但它在聚焦时永远不会改变颜色。有什么办法吗?我也试过这个,它在点击时改变了颜色,但只有当它聚焦时:

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> 

也试试这些链接,解决你的问题

http://www.gersic.com/blog.php?id=56

http://developer.android.com/guide/topics/ui/themes.html

关于android - 如何在聚焦时更改 TableRow 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274343/

相关文章:

java - Logcat错误运行时异常,无法启动 Activity

java - 如何安装Android GCM

android - 构建 apk 扩展类型显示 Mobogenie APK?我不知道为什么

android - 从 Play 服务单体中过滤资源以使您的 APK 更小

Android aFreeRDP cmake 构建失败

android - Jetpack Compose @PreviewParameter 导致预览消失

android - ViewPager PagerAdapter 在方向改变时重置

android - android 小部件中的 TextView 不更新

java - 持续更新文字Android

android - 如何通过ID在Android中打开名片