Java 回收器视图水平Android

Java 回收器视图水平Android,java,android,android-recyclerview,Java,Android,Android Recyclerview,我在一个布局中创建了两个回收器视图。 我面临的问题是,我的水平回收器视图显示为垂直视图 我已经上传了我的xml文件 垂直回收器视图工作正常,但水平回收器视图存在垂直显示项目的问题 Horizontal.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width

我在一个布局中创建了两个回收器视图。 我面临的问题是,我的水平回收器视图显示为垂直视图 我已经上传了我的xml文件

垂直回收器视图工作正常,但水平回收器视图存在垂直显示项目的问题

Horizontal.xml


 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="vertical"
 >
 <TextView
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="City"
     android:textStyle="bold"
     android:background="@color/LightGreen"
     />

 <androidx.recyclerview.widget.RecyclerView
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:id="@+id/city_recycleview"
     />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=
    "http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
>

<androidx.cardview.widget.CardView
    android:layout_width="120dp"
    android:layout_height="120dp"
    app:cardCornerRadius="4dp"
    app:cardElevation="1dp"
    app:cardMaxElevation="2dp"
    android:layout_centerInParent="true"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_margin="1dp"
    >


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

        <de.hdodenhof.circleimageview.CircleImageView
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_marginTop="5dp"
            android:layout_gravity="center"
            android:scaleType="centerCrop"
            android:layout_centerHorizontal="true"
            android:id="@+id/city_imagecicrlemain"
            android:src="@drawable/ic_launcher_background"
            >

        </de.hdodenhof.circleimageview.CircleImageView>

        <TextView
            android:id="@+id/name_Citymain"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_below="@id/city_imagecicrlemain"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="4dp"
            android:layout_marginBottom="5dp"
            android:autoSizeMaxTextSize="15sp"
            android:autoSizeMinTextSize="8sp"
            android:autoSizeTextType="uniform"
            android:text="Lahore"
            android:textColor="@color/black">
            </TextView>

    </RelativeLayout>

</androidx.cardview.widget.CardView>
</LinearLayout>



水平单行.xml


 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="vertical"
 >
 <TextView
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="City"
     android:textStyle="bold"
     android:background="@color/LightGreen"
     />

 <androidx.recyclerview.widget.RecyclerView
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:id="@+id/city_recycleview"
     />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=
    "http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
>

<androidx.cardview.widget.CardView
    android:layout_width="120dp"
    android:layout_height="120dp"
    app:cardCornerRadius="4dp"
    app:cardElevation="1dp"
    app:cardMaxElevation="2dp"
    android:layout_centerInParent="true"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_margin="1dp"
    >


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

        <de.hdodenhof.circleimageview.CircleImageView
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_marginTop="5dp"
            android:layout_gravity="center"
            android:scaleType="centerCrop"
            android:layout_centerHorizontal="true"
            android:id="@+id/city_imagecicrlemain"
            android:src="@drawable/ic_launcher_background"
            >

        </de.hdodenhof.circleimageview.CircleImageView>

        <TextView
            android:id="@+id/name_Citymain"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_below="@id/city_imagecicrlemain"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="4dp"
            android:layout_marginBottom="5dp"
            android:autoSizeMaxTextSize="15sp"
            android:autoSizeMinTextSize="8sp"
            android:autoSizeTextType="uniform"
            android:text="Lahore"
            android:textColor="@color/black">
            </TextView>

    </RelativeLayout>

</androidx.cardview.widget.CardView>
</LinearLayout>



要使您的
回收视图
水平,您需要将其设置为
布局管理器

final GridLayoutManager layoutManager = new GridLayoutManager(this, NUM_OF_ROWS, GridLayoutManager.HORIZONTAL, false);
m_recyclerView.setLayoutManager(layoutManager);

方向由布局管理器控制,请确保将其方向设置为水平,我建议在此用例中使用
LinearLayoutManager

in Kotlin:
//In your activity / fragment

val linearLayoutManager = LinearLayoutManager(
            context,
            LinearLayoutManager.HORIZONTAL,
            false
        )

    yourRecyclerView.layoutManager = linearLayoutManager

希望它能解决您的问题:)

是的,使用
import androidx.recyclerview.widget.GridLayoutManager导入它(不要忘记将
实现'androidx.recyclerview:recyclerview:1.1.0'
添加到gradle文件中)