Как мы можем динамически увеличивать высоту представления переработчика при отображении элементов

#android #android-studio #android-layout #android-recyclerview

Вопрос:

Я пытался отобразить список элементов, например 30 items , с помощью диспетчера компоновки flex в представлении recycler. Элементы отображаются так, как и ожидалось. Но я должен показать первые 10 элементов в представлении переработчика , а затем у меня есть кнопка с именем LoadMore , при нажатии кнопки «Загрузить больше» я должен показать следующие 20 элементов в представлении переработчика. поэтому при добавлении каждого элемента в представление переработчика высота представления переработчика должна устанавливаться динамически . Как мы можем этого достичь?

пример XML-макета:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="wrap_content"
    android:background="@drawable/filter_bg_round_corner">

    <LinearLayout
        android:id="@ id/varietal_root_lyt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:orientation="vertical"
        android:visibility="visible">

        <androidx.appcompat.widget.SearchView
            android:id="@ id/region_Search"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/filter_search_bar_bg_lyt"
            app:iconifiedByDefault="false"
            app:queryHint="Search">

        </androidx.appcompat.widget.SearchView>

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

            <androidx.core.widget.NestedScrollView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:isScrollContainer="false">

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

                </androidx.recyclerview.widget.RecyclerView>

            </androidx.core.widget.NestedScrollView>
        </RelativeLayout>

        <TextView
            android:id="@ id/filter_region_show_more_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="14dp"
            android:layout_marginTop="30dp"
            android:text="Show More"
            android:textAllCaps="false"
            android:textColor="#323c55"
            android:textSize="13sp"
            android:textStyle="bold">

        </TextView>

    </LinearLayout>

</RelativeLayout>
 

пример кода 2 для моего класса фрагментов, устанавливающего значения для адаптера:

 filterRegionAdapter = new FilterRegionAdapter(getContext(), regionArrayList);
                            filterRegionAdapter.setOnFilterRegionItemClickListener(onFilterRegionItemClickListener);
                            FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(getContext());
                            layoutManager.setFlexDirection(FlexDirection.ROW);
                            layoutManager.setJustifyContent(JustifyContent.FLEX_START);
                            layoutManager.setAlignItems(AlignItems.CENTER);
                            RelativeLayout.LayoutParams lp =
                                    new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 100);
                            regionRecycler.setLayoutParams(lp);
                            regionRecycler.setLayoutManager(layoutManager);
                            regionRecycler.setAdapter(filterRegionAdapter);