Android RecyclerView 和 CardView:卡片之间的边距
Android RecyclerView with CardView: Margins between cards
我目前正在构建我的第一个 Android 应用程序,我正在使用 RecyclerView 和来自 Material Design 的卡片。但是,我希望卡片和屏幕边缘以及卡片之间的边距相同。根据我设置边距的方式,我会遇到不同的问题:
变体 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>
这导致卡片之间的 space 是卡片与屏幕边缘之间的两倍。
变体 2:
android:layout_marginTop="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="0dp"
这是我当前的实现。它修复了卡片之间较宽的 space,但代价是列表底部没有边距。 IE。如果我一直滚动到底部,卡片的下边缘与屏幕的下边缘对齐。我也想在那里有保证金。
变体 3:
我尝试的第三个选项是将 RecyclerView 放在一个额外的布局中,并使用该布局将边距设置为屏幕边缘。这有一个问题,如果你一直滚动到列表的顶部或底部并进一步拉动,出现的波浪 "overscroll areas" 只会出现在 RecyclerView 中并且不会延伸到屏幕的边缘。所以它看起来也有点hacky。
For clarification I attached a screenshot using a 4dp padding on the RecyclerView
感谢您帮助我 ;)
只是不要同时添加两者
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
这将复制值
加上marginBottom,就够了
android:layout_marginBottom="8dp"
试试这个。要卡片视图布局应用这些
android:layout_marginTop="4dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="4dp"
并为 recyclerview 添加填充
android:paddingTop="4dp"
android:paddingBottom="4dp"
我目前正在构建我的第一个 Android 应用程序,我正在使用 RecyclerView 和来自 Material Design 的卡片。但是,我希望卡片和屏幕边缘以及卡片之间的边距相同。根据我设置边距的方式,我会遇到不同的问题:
变体 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>
这导致卡片之间的 space 是卡片与屏幕边缘之间的两倍。
变体 2:
android:layout_marginTop="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="0dp"
这是我当前的实现。它修复了卡片之间较宽的 space,但代价是列表底部没有边距。 IE。如果我一直滚动到底部,卡片的下边缘与屏幕的下边缘对齐。我也想在那里有保证金。
变体 3: 我尝试的第三个选项是将 RecyclerView 放在一个额外的布局中,并使用该布局将边距设置为屏幕边缘。这有一个问题,如果你一直滚动到列表的顶部或底部并进一步拉动,出现的波浪 "overscroll areas" 只会出现在 RecyclerView 中并且不会延伸到屏幕的边缘。所以它看起来也有点hacky。 For clarification I attached a screenshot using a 4dp padding on the RecyclerView
感谢您帮助我 ;)
只是不要同时添加两者
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
这将复制值
加上marginBottom,就够了
android:layout_marginBottom="8dp"
试试这个。要卡片视图布局应用这些
android:layout_marginTop="4dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="4dp"
并为 recyclerview 添加填充
android:paddingTop="4dp"
android:paddingBottom="4dp"