3

我一直在使用新的 Androidx 库,但遇到了无法修复的问题。我正在使用RecyclerView,只是无法换行。它应该这样做,而且我读到的所有内容似乎都是如果我做错了它就可以工作。我以前用过这个,没有这个问题。我尝试调整主布局和项目布局中的每个设置,但似乎没有任何影响。任何帮助,将不胜感激。

main_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools">

    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/cardRecycler"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
            android:clipToPadding="false"
            app:spanCount="4"

            android:orientation="vertical"
            tools:listitem="@layout/item_card_preview"/>

    </androidx.core.widget.NestedScrollView>

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:liftOnScroll="true">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@android:color/white"
            app:titleTextColor="@color/colorSecondary" />

    </com.google.android.material.appbar.AppBarLayout>


</androidx.coordinatorlayout.widget.CoordinatorLayout>

项目.xml

 <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools">

        <data>
            <variable
                name="card"
                type="com.jibmobile.clashroyaltoolkit.vo.CardPreview"/>


        </data>

        <ImageView
            android:id="@+id/imageView"
            image="@{card.name}"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="0dp"
            android:paddingTop="0dp"
            android:contentDescription="@{card.displayName}"
            tools:src="@drawable/archers" />
4

1 回答 1

0

就我而言,好的,在 item.xml 中,高度被赋予“match_parent”。我将其转换为“wrap_content”后,回收视图的高度根据项目的数量进行了扩展。请注意,我也在使用 androidx 库。

item.xml 代码是这样的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    android:padding="@dimen/small_padding">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/tickred"
        android:layout_marginStart="0dp"
        android:layout_marginTop="1dp"
        android:layout_gravity="top"
        android:layout_marginEnd="@dimen/dimen_margin_between_text"/>

    <androidx.appcompat.widget.AppCompatTextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:id="@+id/serviceTv"
        android:layout_gravity="top"
        android:gravity="top"
        app:fontFamily="@font/lato_regular"
        android:textColor="@color/black"
        android:textSize="@dimen/dimen_text_smallx"/>

</LinearLayout>

我将容器高度更改为 wrap_content ,recycleview 相应地采用它的高度。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    android:padding="@dimen/small_padding">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/tickred"
        android:layout_marginStart="0dp"
        android:layout_marginTop="1dp"
        android:layout_gravity="top"
        android:layout_marginEnd="@dimen/dimen_margin_between_text"/>

    <androidx.appcompat.widget.AppCompatTextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:id="@+id/serviceTv"
        android:layout_gravity="top"
        android:gravity="top"
        app:fontFamily="@font/lato_regular"
        android:textColor="@color/black"
        android:textSize="@dimen/dimen_text_smallx"/>

</LinearLayout>
于 2019-02-28T06:46:30.537 回答