我有一个经典的布局,顶部有一个 ToolBar,下面有一个 TabLayout,还有一个 ViewPager 从 TabLayout 切换选项卡。当 ViewPager 中的内容可滚动时,ToolBar 应该滚动到视线之外,并且 TabLayout 应该跟随并在到达顶部时粘住。
在我当前的代码中,这一切都很好,除了 ToolBar 始终是可滚动的,无论 ViewPager 内容的大小如何。请参阅下面的代码。关于如何解决这个问题的任何绝妙想法?
<?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:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/primary"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.ToolBar"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:scrollbars="horizontal"
app:tabIndicatorColor="@color/black_text" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/tabs_activity_view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
编辑:
我可以看到 viewPager 的高度与整个根视图的高度相同。这可能是有意的,因为 appbar_scrolling_view_behavior 似乎确实添加了顶部和底部偏移量。然而,它确实看起来很奇怪,因为它会导致总是滚动工具栏和标签栏。