Heim  >  Artikel  >  Java  >  Hintergrundfarbeinstellung für Android-ListView-Elemente und beim Klicken auf das Element reagiert die Lösung nicht

Hintergrundfarbeinstellung für Android-ListView-Elemente und beim Klicken auf das Element reagiert die Lösung nicht

高洛峰
高洛峰Original
2017-01-20 15:23:521243Durchsuche

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>
3 ) Im Set

<?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>
in der getView-Methode Die oben genannten Methoden können den gleichen Effekt erzielen, nämlich die Standardhintergrundfarbe des Elements und die Hintergrundfarbe beim Klicken zu ändern Am flexibelsten ist es, wenn die Listenansicht ungerade und gerade Zeilen enthält. Die Zeilen müssen auf unterschiedliche Selektoren eingestellt werden, und nur die dritte Methode kann verwendet werden.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn