2017-02-18 162 views
1

我试图让卡图的涟漪效应没有得到波及效应,我实现它加入了android:作为Android开发者https://developer.android.com/training/material/animations.html页面描述背景属性,但我没有得到的连锁反应,然后我改变了属性的android:前景为https://stackoverflow.com/a/26975714/6866139给我仍然在这里不是获得连锁反应是我的XML代码在Android棒棒糖CardView

<?xml version="1.0" encoding="utf-8"?> 
    <android.support.v7.widget.CardView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:card_view="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     card_view:cardBackgroundColor="@color/cardview_light_background" 
     card_view:cardElevation="3dp" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:id="@+id/card_view" 
     android:clickable="true" 
     android:background="?android:attr/selectableItemBackground" 
     android:layout_margin="@dimen/password_list_item_card_view_layout_margin"> 


      <LinearLayout 
       android:orientation="horizontal" 
       android:layout_width="match_parent" 
       android:layout_height="70dp"> 

       <TextView 
        android:layout_width="48dp" 
        android:layout_height="48dp" 
        android:id="@+id/logo_text_holder" 
        android:layout_marginTop="12dp" 
        android:layout_marginStart="12dp" 
        android:textColor="@color/colorPrimaryDark" 
        android:background="@drawable/circle" 
        android:paddingTop="8dp" 
        android:textSize="24sp" 
        android:textAlignment="center" /> 

       <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_marginStart="16dp" 
        android:layout_marginTop="8dp"> 

        <TextView 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:id="@+id/name_holder" 
         android:textColor="@color/colorPrimaryDark" 
         android:textSize="24sp" /> 

        <TextView 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:id="@+id/email_holder" 
         android:textColor="@color/colorPrimaryDark" 
         android:textSize="14sp"/> 
       </LinearLayout> 
      </LinearLayout> 
    </android.support.v7.widget.CardView> 

有什么办法来实现它,请帮我提前

谢谢
+0

相反的android:背景= “机器人:ATTR/selectableItemBackground” 使用这个机器人:前景= “机器人:ATTR/selectableItemBackground”。 –

+0

我尝试使用android:foreground和android:background属性,但仍然无法正常工作 – RikudouSennin

回答

0

我有同样的问题,在的CardView 210,而不是android:layout_width="match_parent"使用android:layout_width="wrap_content"

如下面的代码:

<android.support.v7.widget.CardView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:cardBackgroundColor="@color/green" 
      android:foreground="?attr/selectableItemBackground" 
      android:background="?attr/selectableItemBackground" 
      android:stateListAnimator="@animator/lift_on_touch" 
      android:focusable="true" 
      android:clickable="true" 
      app:cardPreventCornerOverlap="false" 
      app:cardUseCompatPadding="true"> 
     <TextView 
      android:id="@+id/notification_details_med_close" 
      android:layout_width="wrap_content" 
      android:padding="10dp" 
      android:layout_gravity="center" 
      android:layout_height="wrap_content" 
      android:background="@color/green" 
      android:text="CARDVIEW" 
      android:textAppearance="?android:textAppearanceLarge" 
      android:textColor="@android:color/white" /> 
     </android.support.v7.widget.CardView> 

对触摸升降动画,在animator-v21文件夹

<?xml version="1.0" encoding="utf-8"?> 
<!-- animate the translationZ property of a view when pressed --> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_enabled="true" 
     android:state_pressed="true"> 
     <set> 
      <objectAnimator 
       android:duration="@android:integer/config_shortAnimTime" 
       android:propertyName="translationZ" 
       android:valueTo="16dp" 
       android:valueType="floatType"/> 
     </set> 
    </item> 
    <item> 
     <set> 
      <objectAnimator 
       android:duration="@android:integer/config_shortAnimTime" 
       android:propertyName="translationZ" 
       android:valueTo="0" 
       android:valueType="floatType"/> 
     </set> 
    </item> 
</selector> 

此创建一个动画资源文件lift_on_touch将有助于CardView的材料设计效果。

注:android:stateListAnimator作品与API 21以上。