2017-02-18 6 views
1

カードビューでリップル効果を得ようとしていますが、Android Developersページhttps://developer.android.com/training/material/animations.htmlに記載されているようにandroid:background属性を追加して実装しましたが、波紋効果、その後、私はアンドロイドに属性を変更:フォアグラウンドを私のXMLコードAndroid Lollipop 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> 

まだ私はここに波及効果を得ていないのですhttps://stackoverflow.com/a/26975714/6866139にされて与えられたとして、それを実装するためにどのような方法がありますが、私のアドバンス

で 感謝を助けてください
+0

android:background = "?android:attr/selectableItemBackground"の代わりに、このandroid:foreground = "?android:attr/selectableItemBackground"を使用してください。 –

+0

私は両方のアンドロイドを使用してみました:フォアグラウンドとアンドロイド:バックグラウンドの属性は、まだ動作しません – RikudouSennin

答えて

0

私はの中に同じ問題がありました代わりに以下のコードのようにandroid:layout_width="match_parent"使用android:layout_width="wrap_content"

CardViewの210、タッチのリフトアニメーションの

<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以上で動作します。

関連する問題