RecyclerView中的Center CardView项目

时间:2019-03-06 06:16:46

标签: android android-recyclerview alignment recycler-adapter

  

我在RecyclerView中显示我的产品列表

item_row.xml

<android.support.v7.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:layout_margin="6dp"
        android:layout_gravity="center_horizontal"
        android:layout_centerHorizontal="true"
        app:cardUseCompatPadding="true"
        app:cardElevation="4dp"
        app:cardCornerRadius="3dp">

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:gravity="center"
            android:orientation="horizontal">

        <TextView
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:textAlignment="center"
                android:textStyle="bold"
                android:text="Hello"
                android:textColor="@android:color/background_dark"
                android:textSize="20sp"
                android:id="@+id/tv_subject"/>

        <android.support.v7.widget.AppCompatCheckBox
                android:id="@+id/checkbox"
                android:layout_width="50dp"
                android:layout_height="50dp"/>
    </LinearLayout>

</android.support.v7.widget.CardView>

我对CardView应用了两个属性以使其居中,但我的项目View仍然保持对齐状态

    android:layout_gravity="center_horizontal"
    android:layout_centerHorizontal="true"

main_layout.xml

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
        <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textSize="24sp"
                android:textColor="@android:color/white"
                android:layout_margin="30dp"
                android:textAlignment="center"
                android:text="Hello World"/>

        <android.support.v4.widget.SwipeRefreshLayout
                android:id="@+id/swipeRefreshLayout"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1">

            <android.support.v7.widget.RecyclerView
                    android:id="@+id/recycler_view"
                    android:layout_width="match_parent"
                    android:layout_gravity="center"
                    android:layout_height="match_parent"/>
        </android.support.v4.widget.SwipeRefreshLayout>
    </LinearLayout>

我还向RecyclerView添加了android:layout_gravity="center",但仍然是行左对齐的项目。

如何在RecyclerView中心对齐 CardView (宽度250dp)? 我想念的是什么。

我在预览窗口中设计的CardView。

enter image description here

编辑->找到解决方案

当我将250dp widhth赋予SwipeRefresh并将其设置为layout_gravity="center"时,它将居中显示。 但是为什么其他解决方案不起作用

<android.support.v4.widget.SwipeRefreshLayout
                android:id="@+id/swipeRefreshLayout"
                android:layout_width="250dp"
                android:layout_gravity="center"
                android:layout_height="0dp"
                android:layout_weight="1">

            <android.support.v7.widget.RecyclerView
                    android:id="@+id/recycler_view"
                    android:layout_width="match_parent"
                    android:layout_gravity="center"
                    android:layout_height="match_parent"/>
        </android.support.v4.widget.SwipeRefreshLayout>

0 个答案:

没有答案