gpt4 book ai didi

android - CoordinatorLayout 不隐藏操作栏

转载 作者:行者123 更新时间:2023-11-29 00:07:30 27 4
gpt4 key购买 nike

这让我抓狂。这两天我一直在努力完成这项工作,但没有取得任何进展。我想要一个应用程序栏,它在我向下滚动 ViewPager 时隐藏,并在我向上滚动 ViewPager 时显示,这似乎是标准的做法。

<android.support.design.widget.CoordinatorLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">

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

<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_collapseMode="pin" />

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

<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways">

<android.support.design.widget.TabLayout
android:id="@+id/posts_pager_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="scrollable"
app:layout_collapseMode="pin">
</android.support.design.widget.TabLayout>
</android.support.design.widget.CollapsingToolbarLayout>

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

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


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

viewpager 包含一堆 fragment ,每个 fragment 都包含一个 ListView 。我正在使用版本 22.2.0 的 appcompat 和设计。

我将我的代码与此处的代码进行了比较:git@github.com:slidenerd/Android-Design-Support-Library-Demo.git,没有发现重大差异。有人可以帮忙吗?谢谢。如果我没有用尽我所有的选择,我不会发布这个。

最佳答案

我做了一些测试,这是我的发现:

您原来的布局(没有 CollapsingToolbarLayout)更接近。我调整了您的布局并对其进行了测试:

<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"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
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:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:layout_scrollFlags="scroll|enterAlways" />

<android.support.design.widget.TabLayout
android:id="@+id/posts_pager_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="scrollable" />

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

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

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

所以这里是要点:

  • CoordinatorLayout 必须有一个 AppBarLayout 和另一个子布局。
  • AppBarLayout 必须有一个 Toolbar 和/或一个 TabLayout
  • app:layout_scrollFlags="scroll|enterAlways" 属性出现在 Toolbar 和/或 TabLayout 上。

    具有scrollflags(或两者)的布局将滚出 View 。所以我不知道您是否希望 Toolbar 滚动而不是 TabLayout,但无论哪种方式,您都可以控制行为。

  • 您不能将 ListView 用作 ScrollView 。甚至在您的 ViewPager fragment 中。添加 app:layout_behavior="@string/appbar_scrolling_view_behavior" 属性没有任何区别。

    您必须使用 RecyclerViewNestedScrollView。奇怪的是,我不需要 RecyclerView 上的 app:layout_behavior="@string/appbar_scrolling_view_behavior" 属性。这是在 ViewPagerFragment 子类中。

关于android - CoordinatorLayout 不隐藏操作栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32804037/

27 4 0