问题描述
当滚动recyclerview时,我想要平滑地调整我的应用栏及其视图的大小。
-----------------
| Title |
|_______ ______|
| || |
|_______||______|
| |
| |
| |
-----------------
应该成为
-----------------
|_______ ______|
|_______||______|
| |
| |
| |
-----------------
我使用的是CoordinatorLayout,所以我尝试使用自定义的Behavior类在nestedScroll上调整视图高度的大小,但是它不能顺利进行,该怎么办?
编辑:我被要求显示一些代码,实际上我没有编写太多代码来处理调整大小,但是这里是
@Override
public void onnestedScroll(@NonNull CoordinatorLayout coordinatorLayout,@NonNull AppBarLayout child,@NonNull View target,int dxconsumed,int dyConsumed,int dxUnconsumed,int dyUnconsumed,int type) {
super.onnestedScroll(coordinatorLayout,child,target,dxconsumed,dyConsumed,dxUnconsumed,dyUnconsumed,type);
if (dyConsumed > 0) {
child.findViewById(R.id.channelName).setVisibility(View.GONE);
child.getLayoutParams().height -= dyConsumed;
}
if (dyConsumed < 0 && !target.canScrollVertically(-1)) {
child.findViewById(R.id.channelName).setVisibility(View.VISIBLE);
}
}
问题是onnestedScroll仅在滚动结束时被调用,因此在滚动结束时进行调整大小,而我希望它可以实时调整大小
解决方法
您可以使用CollapsingToolbarLayout。
Android CollapsingToolbarLayout 是工具栏的包装,该包装实现了 collapsingAppBar 。它旨在用作 AppBarLayout 的直接子代。 这种布局通常在Whatsapp应用程序的配置文件屏幕中看到。
此布局包括:
合拢标题: 展开布局时,标题较大。随着布局折叠并滚动到屏幕之外,文本大小会变小。
app:layout_scrollFlags::此布局的滚动标志通常设置为“ scroll | exitUntilCollapsed”。
app:collapsedTitleGravity:指定折叠时容器中标题的重力。
app:contentScrim::这要求在屏幕外滚动足够大时指定CollapsingToolbarLayouts内容的可绘制或颜色值。 ?attr / colorPrimary。
app:scrimAnimationDuration:指定用于稀松布可见性动画的持续时间。这需要一个整数值,例如“ 100”。
例如https://cdn.journaldev.com/wp-content/uploads/2017/04/android-collapsing-toolbar-default-output.gif
示例代码:`
$sum1
在评论中提出任何疑问,希望这会有所帮助。