ListView 中的涟漪效应奇怪行为
Ripple effect weird behavior in ListView
我已经使用 <ripple>
元素为 ListView
中的每个项目实现了连锁反应。当我在 ListView
中的每个项目上触摸 (select) 时,我得到了想要的连锁反应。但是当我再次滚动 ListView
然后 select 任何项目时,波纹消失得非常快(几乎不明显)。我不知道为什么波纹在某些 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 的回收机制是否与此有关吗?谢谢。
与其将涟漪效应传递给列表中的每一项,不如试试这个:
<ListView
android:id="@+id/yourListView"
...
android:listSelector="@drawable/ripple_background" />
我已经使用 <ripple>
元素为 ListView
中的每个项目实现了连锁反应。当我在 ListView
中的每个项目上触摸 (select) 时,我得到了想要的连锁反应。但是当我再次滚动 ListView
然后 select 任何项目时,波纹消失得非常快(几乎不明显)。我不知道为什么波纹在某些 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 的回收机制是否与此有关吗?谢谢。
与其将涟漪效应传递给列表中的每一项,不如试试这个:
<ListView
android:id="@+id/yourListView"
...
android:listSelector="@drawable/ripple_background" />