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

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

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

  • 如何animation渐变?
  • 如何使用DrawerLayout打开活动时删除延迟?
  • fillAfter和fillEnabled不能在Android视图animationXML中工作
  • Androidanimation减少口吃/波动/滞后
  • 同时启动多个ViewPropertyAnimators
  • 如何以编程方式滚动animation
  • 与animation的Windowmanager
  • Android:从静止图像制作animation
  •  <?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); } } }); 

    尝试像这样的东西