2016-03-08 53 views
3

我想將材料設計ripple effect添加到由ViewPager所示的View。我們的團隊通過將?attr/selectableItemBackground設置爲View的背景,可以在我們的應用程序的其他部分執行此操作。但是,當我將它指定爲由ViewPager的適配器返回的View的背景時,效​​果似乎不起作用。有沒有人得到這個工作?將材料紋波應用於ViewPager項目

從經驗看,ViewPager似乎消耗了阻止與子女進行某些交互的事件。例如,ViewPager項目不會獲得onClick()事件,您必須解決該問題in other ways。我想知道這裏沒有類似的問題,ViewPager正在消耗波紋工作所需的事件。

+0

你得到它的工作? – penduDev

+0

不,我從來沒有。 – spaaarky21

回答

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>