ViewPager in a NestedScrollView

前端 未结 19 1993
面向向阳花
面向向阳花 2020-11-27 10:08

I need to create an interface like Google Newsstand which is a sort of ViewPager (horizontal scroll) over a collapsing header (vertical scroll). One of my requirements is to

相关标签:
19条回答
  • 2020-11-27 10:27

    You dont need use the NestedScrollView to have the parallax effects. try something like this:

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:animateLayoutChanges="true">
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/my_toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_scrollFlags="scroll|enterAlways"/>
    
            <android.support.design.widget.TabLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/my_tab_layout"
                android:fillViewport="false"
                app:tabMode="fixed"/>
         </android.support.design.widget.AppBarLayout>
    
                <android.support.v4.view.ViewPager
                    android:id="@+id/my_view_pager"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
    
    </android.support.design.widget.CoordinatorLayout>
    
    0 讨论(0)
  • 2020-11-27 10:27

    you just removed the NestedScrollView on your xml and add this code on your class

    yourGridView.setNestedScrollingEnabled(true);

    0 讨论(0)
  • 2020-11-27 10:28

    Had the same issues.

    When putting the NestedScrollView around the ViewPager, it wouldn't work.

    What DID work though is putting the NestedScrollView inside the layout of the fragment I'm loading inside the ViewPager.

    <android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">
            <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@id/fragment_detail"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="fill_vertical"
                android:orientation="vertical">
        ...Content...
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
    

    0 讨论(0)
  • 2020-11-27 10:29

    you can try like this, viewpager works fine, but the viewpager's height is fixed.

    i am still finding the better solution ..., so please let me know any point can do it better, thanks

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minHeight="800dp"
            android:orientation="vertical">
    
            <android.support.v4.view.ViewPager
                android:id="@+id/pager"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"/>
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
    
    0 讨论(0)
  • 2020-11-27 10:30

    I removed NestedScrollView from the main layout and inserted as a Parent in all my Fragment layouts that were supposed to load in ViewPager fixed this issue for me.

    0 讨论(0)
  • 2020-11-27 10:30

    The following should ensure the proper height of the view pager. The fragment is the first fragment provided by the view pager.

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
    
            <android.support.v4.view.ViewPager
                android:id="@+id/viewPager"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>
    
            <fragment
                class="com.mydomain.MyViewPagerFragment"
                android:id="@+id/myFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:visibility="gone"/>
    
        </LinearLayout>
    
    </android.support.v4.widget.NestedScrollView>
    
    0 讨论(0)
提交回复
热议问题