混合ViewPager和滚动活动

时间:2016-07-16 21:48:21

标签: android

我正在制作将ViewPager与导航栏和滚动活动混合在一起的应用程序。我不会为您提供代码,因为我只使用合并的Android Studio模板代码。

enter image description here

这就是应用程序的样子。

当谈到滚动时,会出现问题。

它没有到达页面末尾,因为标题栏可见。

enter image description here

要滚动到页面底部,您需要将手指移动到屏幕顶部并滚动标题以隐藏它。

enter image description here

我发现了几个棘手的解决方案:

  1. 在页面末尾留出空间。
  2. 使标题不变
  3. 但这些解决方案并不适合我。

    我需要滚动按以下步骤操作。

    1. 当您开始滚动时,标题会向上移动并消失。

    2. 然后,片段滚动到页面结尾。

    3. 提前致谢。

1 个答案:

答案 0 :(得分:0)

也许您可以使用CoordinatorLayout并放在工具栏上:

app:layout_scrollFlags="scroll|enterAlways"

并将行为放在您的视图寻呼机中:

app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"

完整的xml是这样的:

    你的activiy xml中的
  1. <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.DrawerLayout        
      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:id="@+id/drawer_layout"
      android:layout_width="match_parent"    
      android:layout_height="match_parent"
      android:fitsSystemWindows="true" tools:openDrawer="start">
    
    <include layout="@layout/content_main"   
       android:layout_width="match_parent"
       android:layout_height="match_parent" />
    
    <android.support.design.widget.NavigationView  
      android:id="@+id/nav_view"
      android:layout_width="wrap_content" 
      android:layout_height="match_parent"
      android:layout_gravity="start" android:fitsSystemWindows="true"
      app:headerLayout="@layout/nav_header_main"
      app:menu="@menu/menu_main_drawer" />
    
    </android.support.v4.widget.DrawerLayout>
    
  2. 包含xml中的
  3. ,例如content_main.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"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:fitsSystemWindows="true">
    
      <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">
    
        <android.support.v7.widget.Toolbar
          android:id="@+id/toolbar"
          android:layout_width="match_parent"
          android:layout_height="?attr/actionBarSize"
          android:background="?attr/colorPrimary"
    
          app:layout_scrollFlags="scroll|enterAlways"
          app:popupTheme="@style/AppTheme.PopupOverlay">
        </android.support.v7.widget.Toolbar>
    
      </android.support.design.widget.AppBarLayout>
    
      <android.support.v4.view.ViewPager
        android:id="@+id/vp_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" />
    
    </android.support.design.widget.CoordinatorLayout>