Я использую новые библиотеки 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>
item.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" />
Хорошо, в моем случае, в 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>