1

Я применил эффект пульсации для каждого элемента внутри ListView с помощью элемента <ripple>. Я получил желаемый эффект пульсации, когда касаюсь (выбираю) по каждому элементу в ListView. Но когда я прокручиваю ListView, а затем снова выбираю любой элемент, рябь исчезает очень быстро (почти незаметно). Я не знаю, почему рябь выглядит красиво на некоторых ListView пунктах и ​​очень странно на некоторых.Странное поведение эффекта пульсации в ListView

Мой заказной макет пульсация показан ниже (ripple_background.xml)

<ripple 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="@color/light_black_overlay"> 
    <item> 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@android:color/background_light" /> 
     </shape> 
    </item> 
</ripple> 

Макет для элемента внутри ListView

<?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="match_parent" 
    android:layout_marginTop="48dp" 
    android:minHeight="?android:listPreferredItemHeight" 
    android:orientation="horizontal" 
    android:background="@drawable/ripple_background"> <!--My ripple layout--> 

    <TextView 
     android:id="@+id/someText 
     android... /> 

    <ImageView 
     android:id="@+id/someImage 
     android... /> 

</RelativeLayout> 

Кто-нибудь столкнулся такой странный эффект ряби внутри ListView? Любая идея, если механизм рециркуляции ListView должен что-то сделать с этим? Спасибо.

ответ

1

Вместо передачи мультипликационный эффект для каждого элемента в списке, попробуйте следующее:

<ListView 
     android:id="@+id/yourListView" 
     ... 
     android:listSelector="@drawable/ripple_background" /> 
+0

Благодаря Саид, это работает для меня. Но знаете ли вы, почему он не работает, если я использую фон пульсации для каждого элемента внутри списка? – Prudhvi

+0

На самом деле есть способ, который пульсация работает для каждого элемента, я не уверен, но я думаю, что вы должны создать пользовательский адаптер, и пока вы привязываете вид, проверяйте, должен ли элемент показывать пульсацию или нет (путем сохранения состояния каждого элемента) и некоторые другие манипуляции, подобные этому. –

+0

будет ли это работать для RecyclerView? – srrvnn

Смежные вопросы