我希望适配器中的cardview
之间有一些相等的空间。
如何放置这样的空间?
这是我的Xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
card_view:cardBackgroundColor="@color/White"
card_view:cardCornerRadius="4dp"
card_view:cardElevation="2dp"
card_view:cardUseCompatPadding="true"
card_view:contentPadding="4dp">
....
上面的代码就像这样......
有人能帮助我吗?
答案 0 :(得分:0)
使用RecyclerView.Adapter的getItemViewType()函数以及由各自的边距组成的单独视图可以正常工作,但在绑定数据时会变得非常混乱,特别是对于处理Play Store应用程序等输入事件(屏幕截图)您在帖子中分享了)因为每个视图持有者在实现点击事件的接口时都有自己的边距。
尽管如此,我所遇到的唯一理想,简洁的解决方案是充分利用ItemDecoration类,您可以相应地将偏移量(在我们的例子中为边距)应用于每个膨胀的列表项,然后将其添加到您的RecyclerView。如文档中所述:
ItemDecoration允许应用程序从适配器的数据集向特定项目视图添加特殊的绘图和布局偏移。这对于在项目,突出显示,可视分组边界等之间绘制分隔符非常有用。
可以找到示例实现here。
答案 1 :(得分:-1)
将CardView
换成LinearLayout
并将padding
属性设为LinearLayout
。
答案 2 :(得分:-1)
使用以下方式检查cheesesquare代码(在您的情况下,在recycleview项目布局中使用此代码)
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dip">
<LinearLayout
android:id="@+id/relativeLayout1"
style="@style/Widget.CardContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
// add your content here!
</LinearLayout>
</android.support.v7.widget.CardView>
Widget.CardContent
<style name="Widget.CardContent" parent="android:Widget">
<item name="android:paddingLeft">10dp</item>
<item name="android:paddingRight">10dp</item>
<item name="android:paddingTop">12dp</item>
<item name="android:paddingBottom">12dp</item>
<item name="android:orientation">vertical</item>
</style>