我想将材质设计ripple effect添加到View
显示的ViewPager
中。通过将?attr/selectableItemBackground
设置为View
的背景,我的团队已经能够在我们的应用的其他部分执行此操作。但是,当我将其指定为View
适配器返回的ViewPager
的背景时,效果似乎无效。有没有人得到这个工作?
根据经验,ViewPager
似乎消耗了阻止与子女进行某些互动的事件。例如,ViewPager
个项目不会获得onClick()
个事件,您必须解决in other ways个问题。我想知道这里是否存在类似的问题,ViewPager
正在消耗涟漪工作所需的事件。
答案 0 :(得分:0)
您只需将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>
答案 1 :(得分:0)
视图分页器用于滑动,因此如果要单击它,则需要以编程方式或XML文件中指定。例如,将这些属性添加到视图寻呼机项目的布局中,而不是视图寻呼机本身。
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"