简体   繁体   English

回收站视图水平 Android

[英]Recycler View Horizontal Android

I've made two recycler views in one layout.我在一个布局中制作了两个回收站视图。 I am facing an issue that my horizontal recycler view is shown as vertical view I've uploaded my xml file.我面临一个问题,我的水平回收器视图显示为垂直视图我已经上传了我的 xml 文件。

The vertical recycler view is working correctly, but the horizontal recycler view has a problem that it shows items vertically.垂直回收器视图工作正常,但水平回收器视图存在垂直显示项目的问题。

Horizontal.xml横向.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>

Horizontal_single_row.xml Horizontal_single_row.xml

<?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>


To make your RecyclerView horizontal, you need to set it's layoutManager .要使您的RecyclerView水平,您需要设置它的layoutManager

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

The Orientation is controlled by your layout manager, make sure you have its orientation set to HORIZONTAL, I would recommend using LinearLayoutManager for this use case.方向由布局管理器控制,确保将其方向设置为水平,我建议在此用例中使用LinearLayoutManager

in Kotlin:
//In your activity / fragment

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

    yourRecyclerView.layoutManager = linearLayoutManager

Hope it solves your problem:)希望它能解决你的问题:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM