Я применил эффект пульсации для каждого элемента внутри 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 должен что-то сделать с этим? Спасибо.
Благодаря Саид, это работает для меня. Но знаете ли вы, почему он не работает, если я использую фон пульсации для каждого элемента внутри списка? – Prudhvi
На самом деле есть способ, который пульсация работает для каждого элемента, я не уверен, но я думаю, что вы должны создать пользовательский адаптер, и пока вы привязываете вид, проверяйте, должен ли элемент показывать пульсацию или нет (путем сохранения состояния каждого элемента) и некоторые другие манипуляции, подобные этому. –
будет ли это работать для RecyclerView? – srrvnn