折叠操作栏但仅在RecyclerView完全显示第一个项目时显示

7

这取决于你的实现方式。你能否请说明一下你是如何实现这个效果的?是使用库还是在你的代码中处理所有事情? - Neeraj Kumar
我的问题中已经附上了实现链接,这就是我达到效果的方式。 - josephus
目前没有办法实现那个效果。如果您在工具栏中指定app:layout_scrollFlags="scroll"而不是app:layout_scrollFlags="scroll|enterAlways",它将永远不会返回。实现这一点的方法之一是将工具栏用作列表视图或网格视图的标题,这样它将以您想要的方式滚动出去和滚回来。 - Neeraj Kumar
我不这么认为,因为这是Google+应用程序的个人资料视图目前的行为方式。此外,我不能对RecyclerView(或ListView或GridView)使用标题方法,因为我使用带有选项卡布局的ViewPager。 - josephus
1个回答

3
设计库有一个称为AppBarLayout的组件来实现这一点。
包含此库:
```gradle implementation 'com.google.android.material:material:1.2.0' ```
dependencies {
    compile 'com.android.support:design:22.2.0'
}

Toolbar 放在一个 AppBarLayout 中,并将 scrollFlags 设置为“scroll”,然后将整个布局放在一个 CoordinatorLayout 中,最后将你的滚动视图的 layout_behavior 设置为 @string/appbar_scrolling_view_behavior

<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.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"/>

      <!-- If you have tabs you can include them below the toolbar -->
      <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

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

    <!-- If you use a ViewPager, just add the layout_behavior to it instead of the RecyclerView -->
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

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

1
对不起,我忘记了我链接的是哪个教程(我的问题已经存在几天了,我仍在搜索)。但是我也尝试过使用CoordinatorLayout方法,它与教程试图做的事情完全相同。我甚至尝试了不同的layout_scrollFlags值。我希望'enterAlwaysCollapsed'并且minHeight为0dip可以解决问题,但是没有。 - josephus
1
也许您可以详细说明您正在寻找什么,或者发布一个视频之类的东西?只需将scrollFlag设置为scroll似乎正如您所描述的那样。 - tachyonflux
如果你不在滚动时加上“enterAlways”,它在隐藏后就永远不会回来了。最好自己测试一下,看看我的意思是什么。 - josephus
我已经测试过了,结果正常。我想知道你是否对我的答案进行了任何测试。 - tachyonflux
1
谢谢,我已经成功解决了问题。问题在于我的布局中还有一些其他元素,我将它们的可见性设置为gone,但没有设置scrollFlags。这影响了整体结构的正常工作。我接受你的答案并给你颁发奖励。 - josephus
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接