android – 如何根据滚动方向折叠/展开视图?

我有一个View和一个RecyclerView,它位于LinearLayout中.我想要实现的是这样的:

https://material.google.com/patterns/scrolling-techniques.html#scrolling-techniques-behavior

基本上当我向上滚动RecyclerView时,View会折叠.如果我向下滚动RecyclerView,它会扩展.

我尝试了各种方法,但如果手指在滚动位置周围抖动,动画会断断续续.如果手指在一个方向上进行有意的滚动运动,它只会动画很好.我该怎么做呢?

解决方法

您必须将协调器布局与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:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false">

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="210dp"
    android:stateListAnimator="@animator/appbar_always_elevated" //I put this here because I want to have shadow when is open,but you have to create the xml file.
    android:background="@color/WHITE">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:collapsedTitleTextAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"
        app:expandedTitleMarginStart="72dp"
        app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"> //HERE you should take a look what you want your collapse bar do.

        <Here you put the content for you collapse bar,like a ImageView>

        <android.support.v7.widget.Toolbar //This is the size of your fixed bar when you collapse,even here you can put a back button,for example
            android:id="@+id/app_bar"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            app:layout_collapseMode="pin" />
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/main_home_list_swipe"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" >

    <android.support.v7.widget.RecyclerView
        android:id="@+id/main_home_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

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

Obs:如果您放入xml文件,注释将给出错误.提议,所以你会记得读哈哈哈

以上是来客网为你收集整理的android – 如何根据滚动方向折叠/展开视图?全部内容,希望文章能够帮你解决android – 如何根据滚动方向折叠/展开视图?所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。