#android #android-layout
#Android #android-макет
Вопрос:
У меня есть ListView:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:orientation="vertical">
<ImageView
android:layout_height="wrap_content"
android:id="@ id/imageView1"
android:src="@drawable/tab"
android:layout_gravity="center_horizontal"
android:layout_width="fill_parent"></ImageView>
<TextView
android:id="@ id/subcat"
android:background="#b9cd4a"
android:layout_width="fill_parent"
android:textColor="#fff"
android:textStyle="bold"
android:layout_height="35dp"
android:textSize="18dp"
android:paddingLeft="10dp"
android:paddingTop="6dp"
android:text="Choose Location"></TextView>
<ListView
android:id="@ id/sub_catlist"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:listSelector="@color/black"></ListView>
</LinearLayout>
И я увеличиваю список, используя макет TextView:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:background="#fff"
android:orientation="vertical"
android:layout_height="65dp" >
<TextView
android:text="@ id/albumDetails"
android:id="@ id/albumDetails"
android:textColor="#000"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:textSize="16dp"
android:layout_width="wrap_content"
android:paddingTop="8dp"
android:layout_height="45dp"></TextView>
</LinearLayout>
Проблема в том, что когда я нажимаю элемент списка, я не вижу никакого выделения. Мне нужно показать выделение, когда пользователь нажимает на элемент. Как я могу это сделать?
Ответ №1:
TextView
является ли перехват событий щелчка из ListView
. Установить атрибуты
android:focusable="false"
android:clickable="false"
к списку TextView
.
Ответ №2:
В пользовательском Listview используется приведенный ниже код.
TextViewClick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
int count = listview.getChildCount();
for (int i = 0; i < count; i ) {
View v = listview.getChildAt(i);
TextView tx = (TextView) v.findViewById(R.id.txt1);
txt1.setBackgroundColor(Color.RED);
}
txt1.setBackgroundColor(Color.GREEN);
}
});
Ответ №3:
Я думаю, что проблема может быть в android:listSelector="@color/black"
, удалите эту строку
Пример ListView
<ListView
android:id="@ id/nativecontacts_contacts_ListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false"
android:background="@color/White"
android:divider="@drawable/menu_line"
android:cacheColorHint="#00000000"
android:clickable="true" />