簡體   English   中英

如何將水平回收器視圖居中?

[英]How to center horizontal recyclerview in center?

如何在中心制作水平回收視圖?

我嘗試了很多方法將android:layout_gravity="center"放在 recyclerView 中或將 recyclerview 放在線性布局中。

但我沒有成功。

這是我的代碼。

這是包含我的 recyclerview 的 xml 文件。

    <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:orientation="horizontal">
   
       <android.support.v7.widget.RecyclerView
           android:layout_width="wrap_content"
           android:layout_height="40dp"
           android:visibility="invisible"
           android:layout_gravity="center_horizontal"
           android:layout_marginTop="-20dp"
           android:id="@+id/recycler_view">
       </android.support.v7.widget.RecyclerView>
   
   </LinearLayout>

item_row.xml 文件

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal" android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:layout_height="match_parent">
    
        <TextView
            android:layout_width="30dp"
            android:layout_height="match_parent"
            android:id="@+id/textview_size"
            android:background="@drawable/textview_border"
            android:gravity="center"
            android:textColor="#000000"
            />
    
    </LinearLayout>

您必須將 Recyleview 的布局寬度設置為: wrap_content 這個應該可以工作:

         <android.support.v7.widget.RecyclerView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                >

只需將android:gravity="center"到包含您的RecyclerView LinearLayout

使用LinearLayout RelativeLayout插入,而不是使用android:layout_centerInParent="true"你的RelativeLayout像這樣

    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="horizontal">

    <android.support.v7.widget.RecyclerView
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:visibility="invisible"
        android:layout_centerInParent="true"
        android:layout_marginTop="-20dp"
        android:id="@+id/recycler_view">
    </android.support.v7.widget.RecyclerView>

</RelativeLayout>

3 年后,但我希望我的回答能幫助另一個開發人員。

在元素 xml 的父級中:

    android:layout_width="match_parent"

然后將您的子視圖設置為特定寬度

        android:layout_width="300dp"

並且不要忘記添加:

app:layout_constraintLeft_toLeftOf="parent" //If you're using constraint layout as parentw
app:layout_constraintRight_toRightOf="parent"

在線性布局中使用 android:layout_gravity="center_horizo​​ntal"

<LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal"
                android:layout_gravity="center_horizontal">

            <android.support.v7.widget.RecyclerView
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:visibility="invisible"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="-20dp"
                android:id="@+id/recycler_view">
            </android.support.v7.widget.RecyclerView>

    </LinearLayout>

試試這個

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:layout_gravity="center_vertical|center_horizontal"
    android:gravity="center">

     <android.support.v7.widget.RecyclerView
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:visibility="invisible"
        android:layout_gravity="center_horizontal"
        android:id="@+id/recycler_view">
      </android.support.v7.widget.RecyclerView>

</LinearLayout>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <android.support.v7.widget.RecyclerView
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:visibility="visible"
        android:id="@+id/recycler_view">
    </android.support.v7.widget.RecyclerView>

</LinearLayout>

剛剛更新了 gradle 文件中的 recyclerview 版本,現在可以使用了!

:)

請更新 gradle 文件中的庫版本或進一步:

compile 'com.android.support:recyclerview-v7:23.2.1'

對我來說,添加

android: layout_width = "match_parent" 

android: layout_weight = "1" 

到 recyclerview 項目 xml 工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM