2017-05-01 71 views
0

我使用列表視圖項以下背景:漣漪效應禁用的列表視圖項

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:color="@color/light_gray" 
tools:targetApi="lollipop"> 
<item android:id="@android:id/mask"> 
    <shape> 
     <solid android:color="@color/light_gray" /> 
     <stroke 
      android:width="0dp" 
      android:color="@color/light_gray" /> 
     <corners android:radius="2dp" /> 
     <padding 
      android:bottom="8dip" 
      android:left="8dip" 
      android:right="8dip" 
      android:top="8dip" /> 
    </shape> 
</item> 

和列表視圖項目佈局:

<RelativeLayout 
    android:id="@+id/child_container" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/child_background_normal" 
    android:clipChildren="false" 
    android:clipToPadding="false"> 

    <TextView 
     android:id="@+id/child_date_text_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="0dp" 
     android:layout_marginStart="8dp" 
     android:lines="1" 
     android:textSize="12sp" 
     android:fontFamily="sans-serif" 
     tools:text="Today (every three weeks)" 
     android:textColor="@color/dark_gray"/> 

    <TextView 
     android:id="@+id/child_time_text_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/child_date_text_view" 
     android:layout_alignParentStart="true" 
     android:layout_marginStart="8dp" 
     android:layout_marginEnd="8dp" 
     android:layout_marginTop="-4dp" 
     android:layout_marginBottom="0dp" 
     android:lines="1" 
     android:textSize="24sp" 
     android:fontFamily="sans-serif" 
     android:textStyle="bold" 
     tools:text="10:00 am" 
     android:textColor="@android:color/primary_text_light"/> 

    <ImageView 
     android:id="@+id/reminder_snooze_image_view" 
     android:layout_width="18dp" 
     android:layout_height="18dp" 
     android:layout_alignTop="@+id/child_time_text_view" 
     android:layout_alignBottom="@+id/child_time_text_view" 
     android:layout_toEndOf="@+id/child_time_text_view" 
     android:alpha="0.54" 
     android:src="@drawable/ic_reminder_snoozed"/> 

    <TextView 
     android:id="@+id/child_title_text_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/child_time_text_view" 
     android:layout_alignParentStart="true" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="-4dp" 
     android:layout_marginBottom="0dp" 
     android:layout_toStartOf="@+id/overflow_button_layout" 
     android:maxLines="3" 
     android:textSize="16sp" 
     android:fontFamily="sans-serif-medium" 
     android:ellipsize="end" 
     tools:text="Ask Dalia to commit the test code daily to prevent integration issues early on" 
     android:textColor="@android:color/primary_text_light"/> 

    <FrameLayout 
     android:id="@+id/overflow_button_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_centerVertical="true" 
     android:layout_marginEnd="-16dp" 
     android:foreground="?attr/selectableItemBackgroundBorderless"> 

     <ImageButton 
      android:layout_width="48dp" 
      android:layout_height="48dp" 
      android:src="@drawable/ic_more" 
      android:tint="@color/colorAccent" 
      android:background="@drawable/overflow_button_background"/> 

    </FrameLayout> 

</RelativeLayout> 

知道列表視圖項中的ImageButton本身使用該可繪製對象具有漣漪效應:

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:color="@android:color/black" 
    tools:targetApi="lollipop"> 
    <item android:id="@android:id/mask"> 
     <shape> 
      <solid android:color="@color/colorAccentLight" /> 
      <stroke 
       android:width="0dp" 
       android:color="@color/colorAccentLight" /> 
      <corners android:radius="24dp" /> 
      <padding 
       android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" /> 
     </shape> 
    </item> 
    <item > 
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <solid android:color="@android:color/white"/> 
      <stroke android:width="0dp" android:color="@android:color/white" /> 
      <corners android:radius="24dp"/> 
      <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" /> 
     </shape> 
    </item> 
</ripple> 

現在,如果我刪除了ImageButton,漣漪效應又回到了列表項視圖。似乎ImageButton的連鎖效應會禁用列表視圖項目的連鎖效果。如何使這兩個工作?

回答

0

事實證明,這ImageButton使父視圖「不可點擊」。只需將此android:clickable="true"添加到父容器中即可恢復漣漪效應。