【问题标题】:Android collapsing toolbar when vertical viewpager is scrolled down垂直viewpager向下滚动时Android折叠工具栏
【发布时间】:2015-08-17 19:48:38
【问题描述】:

我在 xml 中有折叠工具栏布局:

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/pink"
        app:layout_scrollFlags="scroll|enterAlways"
        />

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabIndicatorColor="@color/background_white"
        />

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

我想要做的是:如果垂直视图页面向下滚动,则折叠工具栏。如果 viewpager 向上滚动,则展开工具栏。我怎么能做到这一点?

谢谢。

【问题讨论】:

  • 您使用的是哪个垂直的ViewPager

标签: android-viewpager vertical-scrolling android-collapsingtoolbarlayout


【解决方案1】:
    <android.support.design.widget.CoordinatorLayout>
      <android.support.design.widget.AppBarLayout>
          ...
      </android.support.design.widget.AppBarLayout>

      <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/white"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

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

将 NestedScrollView 放入您的片段中。就这样 。它会像魅力一样滚动。

【讨论】:

    【解决方案2】:

    以下将解决您的问题

    <?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:id="@+id/main_content" 
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    
    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:minHeight="?attr/actionBarSize"
        android:fitsSystemWindows="true"
        app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
    
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        android:fitsSystemWindows="true"
        app:layout_collapseMode="pin"
        app:layout_scrollFlags="scroll|enterAlways" />
    </android.support.design.widget.CollapsingToolbarLayout>
    
    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    </android.support.design.widget.AppBarLayout>
    
    <android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    </android.support.design.widget.CoordinatorLayout>
    

    现在只需在视图分页器片段中添加 RecylcerView

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:id="@+id/recyclerview" />
    

    您需要做的下一件事是将所有这些都连接到您的活动中 在您的 MainActivity 中对 viewpager 进行通常的初始化,并设置您的 Fragment 以使上述 recyclerview 失效并完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-26
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多