Если вы хотите использовать запас на клик выделить, как вы получите с родовым ListView, вы хотите установить фон каждой строки быть
android:background="@drawable/selector"
Вот пример:
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:padding="5dip"
android:background="@drawable/selector">
selector.xml
Это в res\drawable
папке
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@color/blue></item>
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@color/custom"></item>
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@color/gray" />
<item android:drawable="@color/white"></item>
</selector>
Update: Создание StateListDrawable
программно, как показано ниже и установить в качестве Background
к вашему TableRow
:
Drawable d1=activity.getResources().getDrawable(R.drawable.gradient_bg_hover);
GradientDrawable g = new GradientDrawable(Orientation.TOP_BOTTOM,
new int[] { Color.DKGRAY});
g.setGradientType(GradientDrawable.LINEAR_GRADIENT);
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed,-android.R.attr.state_selected},d1);
states.addState(new int[] {-android.R.attr.state_focused},g);
table_row.setBackgroundDrawable(states);
Это в res\drawable
gradient_bg_hover.xml
папке.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- Gradient BgColor for listrow Selected -->
<gradient
android:startColor="#18d7e5"
android:centerColor="#16cedb"
android:endColor="#09adb9"
android:angle="270" />
</shape>
Update2: Вы можете добавить больше State
к StateListDrawable
согласно вашему требованию.
android:state_activated:
набор, когда вид или его родитель был «активирован» означает, что пользователь имеет в настоящее время отмечен как представляющий интереса.
android:state_active:
Государственное значение для StateListDrawable
.
android:state_enabled:
Устанавливается при включенном режиме просмотра.
android:state_focused:
Государственное значение для StateListDrawable
, заданное при наличии фокуса ввода.
android:state_pressed:
устанавливается, когда пользователь нажимает кнопку вниз.
android:state_selected:
Установлено, что в данный момент выбран вид (или один из его родителей).
Более подробную информацию о StateListDrawable
видеть мое новое обновление у просто нужно добавить больше '' State' в StateListDrawable' согласно у г требование –