繁体   English   中英

Android RecyclerView with CardView:卡片之间的边距

[英]Android RecyclerView with CardView: Margins between cards

我目前正在构建我的第一个 Android 应用程序,并且我正在使用带有 Material Design 卡片的 RecyclerView。 但是,我希望卡片和屏幕边缘以及卡片之间的边距相同。 根据我设置边距的方式,我会遇到不同的问题:

变体 1

<com.google.android.material.card.MaterialCardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginBottom="8dp"
    app:cardElevation="2dp"
    app:cardUseCompatPadding="false">

...

</com.google.android.material.card.MaterialCardView>

这导致卡片之间的空间是卡片与屏幕边缘之间的两倍。

变体 2

android:layout_marginTop="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="0dp"

这是我目前的实现。 它修复了卡片之间更宽的空间,但代价是列表底部没有边距。 即,如果我一直滚动到底部,则卡片的下边缘与屏幕的下边缘对齐。 我也想在那里有一个利润。

变体 3 :我尝试的第三个选项是将 RecyclerView 放入一个额外的布局中,并使用该布局将边距设置为屏幕边缘。 这有一个问题,如果您一直滚动到列表的顶部或底部并拉得更远,出现的波浪状“过度滚动区域”只会出现在 RecyclerView 中,并且不会延伸到屏幕边缘。 所以它看起来也有点hacky。 为澄清起见,我在 RecyclerView 上使用 4dp 填充附加了一个屏幕截图

谢谢你的协助;)

试试这个。在卡片视图布局中应用这些

android:layout_marginTop="4dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="4dp"

并为 recyclerview 添加填充

android:paddingTop="4dp"
android:paddingBottom="4dp"

只是不要同时添加

android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"

这将复制值

添加marginBottom就足够了

android:layout_marginBottom="8dp"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM