【发布时间】:2021-01-21 01:42:44
【问题描述】:
我想在 recyclerview 滚动时平滑地调整我的 appbar 及其视图的大小。
-----------------
| Title |
|_______ ______|
| || |
|_______||______|
| |
| |
| |
-----------------
应该变成
-----------------
|_______ ______|
|_______||______|
| |
| |
| |
-----------------
我正在使用 CoordinatorLayout,因此我尝试使用自定义 Behavior 类调整视图高度 onNestedScroll,但它不会以一种流畅的方式完成,我该怎么办?
编辑:我被要求显示一些代码,实际上我并没有编写太多代码来处理调整大小,但是这里是
@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 仅在滚动结束时被调用,因此在滚动完成时调整大小,而我希望它实时调整大小
【问题讨论】:
-
显示你的代码。
标签: java android android-coordinatorlayout smoothing appbar