Im Folgenden werden einige der häufigsten Probleme bei der Verwendung der Listenansicht erläutert.
1. So ändern Sie die Hintergrundfarbe und die Klickfarbe des Elements
Standardmäßig ist die Hintergrundfarbe des Listenansichtselements schwarz und wird gelb, wenn der Benutzer klickt. Wenn Sie es in eine benutzerdefinierte Hintergrundfarbe ändern müssen, gibt es im Allgemeinen drei Methoden:
1) ListSelector festlegen
2) Hintergrund des Elements in der Layoutdatei festlegen
3) Diese drei Methoden können die Standardhintergrundfarbe und die Klickfarbe des Elements ändern. Sie werden unten separat erläutert. Zuvor müssen Sie jedoch die Datei selector.xml schreiben Schaltfläche oder Die Standardhintergrundfarbe von Listenansichtselementen kann vom Selektor verwendet werden. Das Zeichenelement kann als Farbressource oder Bildressource festgelegt werden.
1) Legen Sie den listSelector von listview fest
<?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/light_blue"></item> <item android:state_pressed="false" android:drawable="@color/sgray"></item> </selector>
2) Legen Sie das Hintergrundattribut in der Layoutdatei von listitem fest. Das Folgende ist die Layoutdatei von listitem
<ListView android:id="@+id/history_list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="#565C5D" android:dividerHeight="3dp" android:listSelector="@drawable/selector" android:cacheColorHint="@android:color/transparent"> </ListView>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/selector"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="历史记录" android:textColor="#ffffff" android:textSize="20sp" android:layout_centerInParent="true"> </TextView> </RelativeLayout>
2. Beim Klicken auf Schaltflächen, Kontrollkästchen und andere Steuerelemente erfolgt keine Reaktion.
Wenn das Listenelement Steuerelemente wie Schaltflächen oder Kontrollkästchen enthält, verliert das Listenelement standardmäßig den Fokus, was dazu führt, dass es nicht auf die Ereignisse des Elements reagieren kann. Die häufigste Lösung besteht darin, das Attribut „descendentFocusability“ in der Layoutdatei des Listenelements festzulegen.if(convertView ==null) { convertView = LayoutInflater.from(context).inflate(R.layout.listitem, null); } convertView.setBackgroundResource(R.drawable.selector);
Weitere verwandte Artikel über die Einstellung der Elementhintergrundfarbe von Android ListView und die Lösung für nicht reagierende Elementklicks finden Sie auf der chinesischen PHP-Website!