gpt4 book ai didi

android - 与 AppBarLayout 重叠 ScrollView

转载 作者:IT老高 更新时间:2023-10-28 13:07:21 24 4
gpt4 key购买 nike

我想实现 Material design scrolling techniques 中的“内容重叠的灵活空间”模式,例如在 this video : Flexible Space with overlapping content GIF

我的 XML 布局现在看起来像:

<android.support.design.widget.CoordinatorLayout 
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="192dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

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

<android.support.v7.widget.Toolbar
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

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

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<....>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>

是否有使用设计库的简单方法来完成此任务?或者我必须建立一个自定义CoordinatorLayout.Behavior这样做?

最佳答案

事实上,使用 AppBarLayout 覆盖 ScrollView 是 Android Design Support Library 的一个包含的功能。 :您可以使用 NestedScrollView (或任何使用 ScrollingViewBehavior 的 View )上的 app:behavior_overlapTop 属性来设置重叠量:

<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
app:behavior_overlapTop="64dp">

请注意,app:behavior_overlapTop 仅适用于具有 app:layout_behavior="@string/appbar_scrolling_view_behavior" 的 View ,因为它是使用属性 (不是 View 或父 View 组,因为属性通常适用于),因此是 behavior_ 前缀。

或通过 setOverlayTop() 以编程方式设置它:

NestedScrollView scrollView = ...
CoordinatorLayout.LayoutParams params =
(CoordinatorLayout.LayoutParams) scrollView.getLayoutParams();
AppBarLayout.ScrollingViewBehavior behavior =
(AppBarLayout.ScrollingViewBehavior) params.getBehavior();
behavior.setOverlayTop(128); // Note: in pixels

关于android - 与 AppBarLayout 重叠 ScrollView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31039074/

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