RecyclerView wrap_content не работает на API 23 и выше - PullRequest
0 голосов
/ 20 мая 2019

У меня есть макет с RecyclerView внутри LinearLayout, который также находится внутри пользовательского NestedScrollView.В API 21 и 22 макет выглядит так, как будто он должен показывать все элементы RecyclerView, но в API 23 и выше показаны только один или два элемента, оставляя оставшуюся часть экрана пустой.Я знаю, что смысл RecyclerView заключается в том, чтобы не использовать wrap_content, но, насколько я понимаю, вы можете.

Я заметил, что когда вид над RecyclerView виден, wrap_content в представлении реселлера работает правильно, но в частностиНа случай, если у меня возникнет проблема, все эти представления программно отключены, так что, похоже, это как-то связано с этим.Так что я не уверен, что с этим делать, так как эти взгляды должны исчезнуть.Я не могу обойти эту ошибку Android SDK?

<CustomNestedScrollView
                    android:id="@+id/editProfileScroll"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:scrollbars="vertical">

                    <LinearLayout
                        android:id="@+id/editProfileMainContainer"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/material_baseline_grid_10x"
                        android:orientation="vertical">

                        <!-- More code: TextViews and TextViews inside LinearLayouts -->

                        <androidx.recyclerview.widget.RecyclerView
                            android:id="@+id/editProfileFieldsRV"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content" />

                    </LinearLayout>

                </CustomNestedScrollView>

1 Ответ

0 голосов
/ 20 мая 2019

Попробуйте использовать RelativeLayout вместо LinearLayout.


С LinearLayout вам придется установить

android:orientation="vertical"
android:weight_sum="3"

и в каждый элемент вам нужно будет добавить android:layout_weight="1".

Выполнение вышеизложенного позволит равномерно распределить 3 элемента по вертикальной оси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...