gpt4 book ai didi

android - 如何在不推送内容的情况下折叠 AppBarLayout 动画,类似于 WhatsApp Android?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:13 26 4
gpt4 key购买 nike

如何在 ViewPager fragment 中滚动 RecyclerView 时独立折叠 Toolbar,而不影响 ViewPager 的折叠效果?

我的意思是,在 WhatsApp Android 中,如果您滚动 3 个主要列表中的任何一个,工具栏不会随内容移动,而是有一个独立的动画轴,非常流畅,不会插入内容 View .你可以看到我向上或向下移动了一点点,RecycleView 没有被 Toolbar 折叠动画插入,它独立移动:

enter image description here

我在 MainActivity 布局中有以下层次结构:

<CoordinatorLayout>
<AppBarLayout>
<Toolbar/>
<TabLayout/>
</AppBarLayout>

<ViewPager>
<!-- Fragments with RecyclerView -->
</ViewPager>

</CoordinatorLayout>

activity_main.xml

    <android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<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|snap|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay" />

<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.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:clickable="true"
app:layout_behavior="ScrollingFABBehavior"
android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_dialog_email" />

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

fragment 的内容是一个 RecyclerView:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="fragments.ConversationsFragment">

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

</FrameLayout>

但是当我滚动 RecyclerView 时,如果我在中途停止,工具栏会突然向上或向下插入 fragment ,而不是像 WhatsApp 一样独立移动动画: enter image description here

在这个例子中它更加极端:

enter image description here

如果我不添加 snap 作为滚动标志,工具栏会在中途停止或推送 fragment ,具体取决于我滚动的距离。

app:layout_scrollFlags="scroll|snap|enterAlways"

有什么方法可以使用 CoordinatorLayout 实现吗?如果没有,我们将不胜感激。

最佳答案

使用NestedScrollView实现类似whatsapp,

<android.support.v4.widget.NestedScrollView
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

</android.support.v4.widget.NestedScrollView>

关于android - 如何在不推送内容的情况下折叠 AppBarLayout 动画,类似于 WhatsApp Android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35874842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com