如何让CardViews在5.0之前无缝堆叠(如Inbox by Gmail)

时间:2015-08-31 22:26:36

标签: android android-layout android-support-library android-recyclerview android-cardview

我正在实现一个在CardViews中堆叠RecyclerView的界面,我想要的结果类似于Gmail的Inbox。正如您在此屏幕截图中看到的,它在5.0+上运行良好! 这正是我想要的

5.0+ stacked CardViews (what I want across all API versions)

但4.4及更早版本无法访问android:elevation属性,因此元素之间存在视觉分离。

4.4- stacked CardViews (do not want)

现在,有一个属性android.support.v7.cardview:cardUseCompatPadding,它将使API 21+像API 20及更低版本一样工作,但我想要相反(让4.4表现得像5.0)。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您可以使用FrameLayout或RelativeLayout作为项目视图的父级来获得一致的外观。如果您的项目布局如下所示:

<CardView android:layout_width="match_parent"
          android:layout_height="match_parent">

        ...
 </CardView>

您可以使用FrameLayout替换CardView元素:

 <FrameLayout android:layout_width="match_parent"
              android:layout_height="match_parent">
        ...
 </FrameLayout>

在RecyclerView.Adapter.onCreateViewHolder中,您将返回后一项目布局。