我試圖讓TableRow在TableLayout中更改用戶觸摸它時的背景顏色,但它似乎不工作。當我點擊TableRow時,沒有任何反應。這是我到目前爲止有:StateListDrawable無法在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>
繪製對象(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:color/transparent中的「Inactive state」的android:drawable屬性更改爲@android:color/background_light,則背景色將更改爲白色。
很高興知道我不是唯一一個。我將onClick從TextView移動到TableRow,因爲我希望整行可點擊,但仍然沒有突出顯示。也許是一個錯誤? –