我想在aView所示的ViewPagers中添加一个材料设计ripple effect。我的团队通过将?attr/selectableItemBackground设置为View的背景,已经能够在我们应用程序的其他部分做到这一点。但是,当我将其作为适配器返回的View的背景时,效果似乎不起作用。有人让它工作了吗?
根据经验,似乎ViewPagers消费的事件阻止了他们与孩子的某些互动。例如,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/

10-12 05:09