У меня есть вид Recycler внутри Viewpager, который находится внутри NestedScrollView

Мой макет выглядит следующим образом

<CoordinatorLayout>
    <AppBarLayout>
        <CollapsingToolbarLayout>
            <Toolbar>
            </Toolbar>
        </CollapsingToolbarLayout>
    </AppBarLayout>
    <NestedScrollView>
        <ViewPager>
            <RecyclerView>
            </RecyclerView>
        </ViewPager>
    </NestedScrollView>
</CoordinatorLayout>

У меня есть больше содержимого внутри RecyclerView, но представление показывает элементы элементов до прокрутки AppBarLayout.

Как сделать просмотр списка прокрутки полным списком?

Ниже приведены скриншоты просмотра введите описание изображения здесь введите описание изображения здесь

Редактировать: вот XML

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="128dp">

    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="128dp"
            android:background="@color/colorPrimary">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="128dp"
                android:orientation="vertical">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="64dp"
                    android:gravity="center"
                    android:textSize="32dp"
                    android:fontFamily="@font/amaranth"
                    android:text="@string/app_name" />
                <EditText
                    android:id="@+id/search_et"
                    android:layout_width="match_parent"
                    android:layout_height="59dp"
                    android:background="@drawable/rounded_corners"
                    android:layout_marginRight="14dp"
                    android:hint="Search"
                    android:maxLines="1"
                    android:inputType="text"
                    android:imeOptions="actionGo"
                    android:padding="10dp" />
            </LinearLayout>
        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
    android:id="@+id/nested_scroll_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_anchor="@id/app_bar_layout"
    app:layout_anchorGravity="bottom"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:fillViewport="true">

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_height="match_parent"/>
</android.support.v4.widget.NestedScrollView>
<android.support.v7.widget.CardView
    app:layout_anchor="@id/nested_scroll_view"
    app:layout_anchorGravity="bottom"
    android:id="@+id/card"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    app:cardElevation="1dp"
    app:cardMaxElevation="3dp">

    <android.support.design.widget.TabLayout

        android:id="@+id/tablayout"
        style="@style/MyCustomTabTextAppearance"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/whiteColor"
        app:tabGravity="fill"
        app:tabIndicatorColor="@color/tabBackgroundColor"
        app:tabMode="fixed">

    </android.support.design.widget.TabLayout>

</android.support.v7.widget.CardView>
</android.support.design.widget.CoordinatorLayout>

Java-код searchResultsRecyclerView = v.findViewById (R.id.search_recycler_view); searchResultsRecyclerView.setNestedScrollingEnabled (ложь ) ; searchResultsRecyclerView.setLayoutManager (new LinearLayoutManager (getContext ()));

    searchEditText = getActivity().findViewById(R.id.search_et);
    searchEditText.addTextChangedListener(new TextWatcher() {
        AsyncTask<Object, Object, Object> asyncTask;
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {
            if (asyncTask == null) {
                asyncTask = new SearchAsyncTask(editable.toString()).execute();
            } else {
                asyncTask.cancel(true);
                asyncTask = new SearchAsyncTask(editable.toString()).execute();
            }
        }
    });
0
Shantanu 24 Фев 2018 в 14:28

3 ответа

Лучший ответ

Добавьте эту строку перед setAdapter в RecylerView recyclerView.setNestedScrollingEnabled (true);

1
Chandresh Tarasariya 24 Фев 2018 в 12:02

Использовать переработчик просмотра высоты wrap_content

<android.support.v7.widget.RecyclerView
                    android:id="@+id/recyclerView"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" />
0
Milan Hirpara 24 Фев 2018 в 11:41

Добавьте эту строку в вашем представлении переработчика XML

Андроид : nestedScrollingEnabled = " ложь "

0
sarva skn 24 Фев 2018 в 12:12