用点击或滑动手势(Android)扩展/折叠CardView?

我正在寻找一个解决scheme,这将允许我扩大cardview看到更多的信息,然后轻松地将其折叠。 Google Keep有这样的卡片的例子。 任何人都知道他们是怎么做到的 我会创build我的cardview的两个版本(一个折叠和一个扩展),然后使用animation类加上手势方法在两个视图之间转换? 我正在使用Recyclerview来保存我的卡片视图。

我发现,如果它是相关的: http : //developer.android.com/training/animation/layout.html

Solutions Collecting From Web of "用点击或滑动手势(Android)扩展/折叠CardView?"

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:orientation="vertical" android:animateLayoutChanges="true" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> //here put the view which is always visible <LinearLayout android:layout_width="match_parent" android:visibilty="gone" android:id="@+id/expandableLayout" android:layout_height="wrap_content"> //here put which will collapse and expand </LinearLayout> </android.support.v7.widget.CardView> 

在你的ArrayList对象类中使用boolean isexpanded

  if (listobj.isexpanded) { holder.expandableLayout.setVisibility(View.VISIBLE); } else { holder.expandableLayout.setVisibility(View.GONE); } holder.cardView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (listobj.isexpanded) { holder.expandableLayout.setVisibility(View.GONE); listobj.isexpanded=false; notifyItemChanged(position); } else { holder.expandableLayout.setVisibility(View.VISIBLE); listobj.isexpanded=true; notifyItemChanged(position); } } }); 

尝试像这样的东西