我正在尝试在TableLayout中获取TableRow,以在用户触摸它时更改背景颜色,但它似乎不起作用。当我点击TableRow时,没有任何反应。这就是我到目前为止:
布局:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/BaseStyle"
android:stretchColumns="*">
<TableRow style="@style/TableRow">
<TextView
android:id="@+id/settings
style="@style/BaseStyle.SettingsText"
android:text="Settings"
android:onClick="onClick"
android:clickable="true"
/>
</TableRow>
</TableLayout>
风格:
<style name="TableRow">
<item name="android:background">@drawable/onclickhighlight</item>
</style>
Drawable(onclickhighlight.xml)
<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/background_light" />
<!-- 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_selected="true" android:state_focused="true" android:state_pressed="true" android:drawable="@android:color/background_light" />
</selector>
颜色
<resources>
<color name="background_light">#FFFFFF</color>
</resources>
我知道TableRow正在使用onclickhighlight StateListDrawable,因为如果我将“非活动状态”的android:drawable属性从@android:color / transparent更改为@android:color / background_light,则背景颜色会变为白色。
答案 0 :(得分:0)
我遇到了完全相同的问题,我正试图找到答案。我打赌如果你要从表格行xml中删除android:onClick="onClick"
,你会发现突出显示会起作用。但是,您如何将click事件与您想要的方法相关联?!
答案 1 :(得分:0)
我遇到了同样的问题,这对我有用。
<?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/yourcolor" />
<item android:drawable="@color/yournormalbackground"/>
</selector>