Прокрутка внутри ViewPagerFragment из NestedScrollview

Итак, у меня есть Activity, который использует NestedScrollView, а внутри этого NestedScrollView находится ViewPager. Этот ViewPAger содержит 2 фрагмента. У одного есть макеты внутри scrollview, а у другого есть recyclerView.

Но оба фрагмента не прокручиваются (ни scrollview, ни recyclerview).

XML активности

<?xml version = "1.0" encoding = "utf-8"?>
<android.support.design.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">

    <android.support.v4.widget.NestedScrollView
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:clipToPadding = "false"
        android:fillViewport = "true">

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

            <RelativeLayout
                android:id = "@+id/ll_header"
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:layout_gravity = "bottom"
                android:background = "@color/colorPrimary"
                android:orientation = "vertical">

               // Some Textview & imagehview here

            </RelativeLayout>

            <RelativeLayout
                android:layout_width = "match_parent"
                android:layout_height = "match_parent"
                android:layout_below = "@+id/ll_header"
                android:orientation = "vertical">

                <com.ogaclejapan.smarttablayout.SmartTabLayout
                    android:id = "@+id/movietab"
                    android:layout_width = "match_parent"
                    android:layout_height = "@dimen/_40sdp"
                    android:background = "@color/colorAccent"
                    android:paddingBottom = "@dimen/_2sdp"
                    app:stl_defaultTabTextColor = "@color/white"
                    app:stl_defaultTabTextHorizontalPadding = "@dimen/_20sdp"
                    app:stl_distributeEvenly = "true"
                    app:stl_indicatorColor = "@color/white"
                    app:stl_indicatorCornerRadius = "1dp"
                    app:stl_indicatorInterpolation = "smart"
                    app:stl_indicatorThickness = "3dp"
                    app:stl_underlineColor = "@color/transparent" />

                <android.support.v4.view.ViewPager
                    android:id = "@+id/mViewpager"
                    android:layout_width = "match_parent"
                    android:layout_height = "match_parent"
                    android:layout_below = "@+id/movietab" />

            </RelativeLayout>

        </RelativeLayout>

    </android.support.v4.widget.NestedScrollView>

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

Фрагмент1 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"
    xmlns:tools = "http://schemas.android.com/tools"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:background = "@color/color1">

    <ScrollView
        android:id = "@+id/scroll"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:clipToPadding = "false"
        android:fillViewport = "true">

        <LinearLayout
            android:id = "@+id/llInfo"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:orientation = "vertical">

            //Inner Layout


        </LinearLayout>

    </ScrollView>

</RelativeLayout>

Фрагмент 2 XML

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools"
    android:id = "@+id/llCasting"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    tools:context = ".fragments.movies.MovieCastFragment">


    <android.support.v7.widget.RecyclerView
        android:id = "@+id/rvCast"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content" />


</LinearLayout>

Я пробовал android:nestedScrollingEnabled = "" true и false на каждом макете, но так и не получил желаемого результата.

ScrollView и RecyclerView фрагмента прокручиваются, но я не хочу их прокручивать, я хочу прокручивать вложенный ScrollVIew Activity.

Что произойдет, если вы замените ScrollView на NestedScrollView? и установите recyclerView.setNestedScrollingEnabled(false); перед настройкой адаптера

Ajay S 08.07.2018 10:07

если я заменю ScrollView на NestedScrollView, то прокручивается только макет фрагмента, а не макет активности. И если я устанавливаю recyclerView.setNestedScrollingEnabled(false);, тогда прокрутка не работает, но когда я устанавливаю recyclerView.setNestedScrollingEnabled(true);, тогда recyclerView прокручивается. но та же проблема, макет активности не прокручивается.

Jitesh Prajapati 08.07.2018 11:14
2
2
558
1

Ответы 1

Высота вашего ViewPager должна быть установлена ​​на wrap_content, а вложенная прокрутка должна быть установлена ​​на false, чтобы родительский NestedScrollView отвечал за прокрутку.

Другие вопросы по теме