Эффект списка android

#android #android-listview

#Android #android-просмотр списка

Вопрос:

У меня есть список в моем приложении. Я поместил фигуру, похожую на фон списка, но при касании прокрутки что-то работает плохо, потому что фон становится черным, а фон фигуры не отображается. Кто-нибудь может мне помочь? Спасибо. Вот мой код:

код списка:

 <ListView
        android:id="@ id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="fill_parent"
        android:layout_gravity="start"
        android:background="@drawable/fondo_menu"
        android:choiceMode="singleChoice"
        android:divider="@null"
        android:listSelector="@android:color/transparent"
         />
  

list_item:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="58dp"
    android:layout_marginBottom="8dp"
    android:gravity="center_vertical" >

    <ImageView
        android:id="@ id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp"

        android:paddingBottom="4dp"
        android:paddingTop="4dp"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@ id/title"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/icon"
        android:gravity="center_vertical"
        android:paddingBottom="10dp"
        android:paddingRight="40dp"
        android:paddingTop="10dp"
        android:textColor="#fff"
        android:textSize="25sp" />

    <TextView android:id="@ id/counter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="8dp"
        />

</RelativeLayout>
  

и форма:

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#000000"
        android:endColor="#2df1bc"
        android:angle="45"/>    
</shape>
  

Комментарии:

1. вы хотите, чтобы фон применялся к каждой ячейке в ListView?

2. Я хочу применить фон ко всему списку, а не к каждому элементу списка, спасибо 🙂

3. Большое вам спасибо, работает отлично!!!!

Ответ №1:

просто добавьте атрибут below в ListView

 android:cacheColorHint="#00000000"


<ListView
        android:id="@ id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="fill_parent"
        android:layout_gravity="start"
        android:cacheColorHint="#00000000"
        android:background="@drawable/fondo_menu"
        android:choiceMode="singleChoice"
        android:divider="@null"
        android:listSelector="@android:color/transparent"
         />
  

Ответ №2:

Добавьте атрибут в ListView тег

 android:cacheColorHint="#00000000" 
  

или используйте его программно как

 left_drawer.setCacheColorHint(Color.TRANSPARENT);
left_drawer.requestFocus(0);