CollapsingToolbarLayout是Android Support库中的一个控件,用于实现可折叠的工具栏效果。它通常与AppBarLayout和NestedScrollView等控件一起使用。
当CollapsingToolbarLayout到达顶部时停止AppBarLayout中的ScrollingView扩展,可以通过设置AppBarLayout的滚动标志位来实现。具体步骤如下:
<androidx.coordinatorlayout.widget.CoordinatorLayout
...>
<com.google.android.material.appbar.AppBarLayout
...>
<com.google.android.material.appbar.CollapsingToolbarLayout
...>
<!-- 可折叠的工具栏内容 -->
</com.google.android.material.appbar.CollapsingToolbarLayout>
<!-- 其他内容,如标题栏、菜单栏等 -->
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
...
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!-- 可滚动的内容 -->
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
AppBarLayout appBarLayout = findViewById(R.id.appBarLayout);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (verticalOffset == 0) {
// CollapsingToolbarLayout到达顶部
// 停止NestedScrollView的滚动扩展
nestedScrollView.setNestedScrollingEnabled(false);
} else {
// CollapsingToolbarLayout未到达顶部
// 允许NestedScrollView的滚动扩展
nestedScrollView.setNestedScrollingEnabled(true);
}
}
});
这样,当CollapsingToolbarLayout到达顶部时,停止NestedScrollView的滚动扩展,即可实现所需的效果。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云