【问题标题】:Centering cards in RecyclerView在 RecyclerView 中居中卡片
【发布时间】:2018-12-20 23:10:12
【问题描述】:

问题很简单,我在 RecyclerView 中有一个 CardView,它使用 2 列的 GridLayout。

颜色只是为了便于查看组件...
白色是 LinearLayout
蓝色是 RecyclerView
绿色是 CardView

我希望卡片在视图中居中,边缘有一些边距......但我无法做到这一点,不管我做什么。 (这就是我想要的,在油漆上做的)

如果不可能,我可以将卡片与边缘对齐,然后在两者之间留出所有边距

代码如下:

这是 CardView:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/cardView"
    android:layout_width="@dimen/influencerCardSize"
    android:layout_height="@dimen/influencerCardSize"
    android:layout_gravity="center"
    android:layout_marginBottom="@dimen/smallMargin"
    card_view:cardBackgroundColor="@android:color/holo_green_dark"
    card_view:cardElevation="0dp"
    card_view:layout_anchorGravity="center_horizontal">

这是 RecyclerView

 <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="@dimen/influencersViewHeight"
            android:layout_gravity="center"
            android:layout_margin="@dimen/smallMargin"

            android:background="@android:color/holo_blue_bright"
            android:scrollbars="vertical"
            android:visibility="visible" />

【问题讨论】:

  • 尝试在 RelativeLayout 中添加 CardView 并将属性添加到 CardView 为 android:layout_centerHorizo​​ntal="true" 或 android:layout_centerInParent="true"

标签: android android-recyclerview android-cardview cardview


【解决方案1】:

尝试在线性布局中使用卡片视图

点赞:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.CardView
        android:layout_margin="10dp"
        android:id="@+id/cardView"
        card_view:cardBackgroundColor="@android:color/holo_green_dark"
        android:layout_width="match_parent"
        android:layout_height="150dp"
    </android.support.v7.widget.CardView>

</LinearLayout>

你的 RecyclerView 看起来不错。

如果你只想要每行两张卡.. 尝试使用 AutoFitGridLayoutManager 来查看回收站

点赞:

AutoFitGridLayoutManager layoutManager  =  new AutoFitGridLayoutManager(context, width);
  recyclerView.setLayoutManager(layoutManager)

【讨论】:

  • 很确定 AutoFitGridLayoutManager 是一个外部依赖项
  • 是的,它是一个外部依赖项.. 但是当您支持方向更改时值得使用.. 这样可以轻松保持对齐
  • 这是...我无法导入它
  • 对,我不是因为它是一个外部依赖而抨击它,只是指出它是因为您应该将该依赖添加为答案的一部分
  • 你能告诉我要导入哪个api吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 2019-02-02
  • 2022-01-06
  • 2016-04-26
  • 1970-01-01
  • 2021-01-30
  • 2022-01-10
相关资源
最近更新 更多