我想在aView
所示的ViewPager
s中添加一个材料设计ripple effect。我的团队通过将?attr/selectableItemBackground
设置为View
的背景,已经能够在我们应用程序的其他部分做到这一点。但是,当我将其作为适配器返回的View
的背景时,效果似乎不起作用。有人让它工作了吗?
根据经验,似乎ViewPager
s消费的事件阻止了他们与孩子的某些互动。例如,ViewPager
项不会得到ViewPager
事件,您必须解决这一问题。我想知道这里是否没有类似的问题,onClick()
正在消耗Ripple工作所需的事件。
最佳答案
您只需将XML视图放入如下FrameLayout
中:
旧布局:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/viewpager_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/app_name"
android:scaleType="centerCrop"/>
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:indeterminateDrawable="@drawable/progress_medium_holo"
android:visibility="gone" />
</RelativeLayout>
新布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?android:attr/selectableItemBackground"
android:selectable="true">
<RelativeLayout android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/viewpager_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/app_name"
android:scaleType="centerCrop"/>
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:indeterminateDrawable="@drawable/progress_medium_holo"
android:visibility="gone" />
</RelativeLayout>
</FrameLayout>
关于android - 将 Material 纹波应用于ViewPager项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35872770/