我希望我的表格行突出显示当我触摸它并立即返回其默认颜色但我无法理解为什么没有发生。可能它只是xml文件中缺少的东西或它不可能但是仍然有我的代码:
table_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_pressed="true" android:state_selected="true" android:drawable="@drawable/selected_state" />
<item android:state_enabled="true" android:state_focused="true" android:state_activated="true" android:state_selected="true" android:drawable="@drawable/hover_state" />
<item android:state_enabled="false" android:drawable="@drawable/default_state" />
</selector>
(我的状态文件只是带颜色的形状。)
detail_row.xml
<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableValues"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:clickable="true"
android:drawable="@drawable/table_selector" >
<TextView
android:id="@+id/txtId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layout_weight="0.1"
android:gravity="center"
android:textColor="#FFFFFF"
android:textSize="@dimen/dataSize" />
<View style="@style/VDivider" />
[...]
detail_table.xml
[...]
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TableLayout
android:id="@+id/detailTable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true" >
</TableLayout>
</LinearLayout>
</ScrollView>
希望有人能给我带来光明。谢谢!
答案 0 :(得分:0)
检查以下代码 如果你想使用点击突出显示的股票,就像你使用通用ListView,你想要将每一行的背景设置为android:background =“@ android:drawable / list_selector_background”
以下是一个例子:
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0">
<TableRow
android:id="@+id/first_row"
android:background="@android:drawable/list_selector_background" >
... row content ...
然后在代码中,
TableRow firstRow = (TableRow) findViewById(R.id.first_row);
firstRow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO: do your logic here
}
}
你应该像在ListView中一样获得一个可突出显示的行...