android - 如何通过动态调整大小的应用栏保持偏移?
问题描述
我有如下典型的折叠工具栏设置:
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="192dp">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsingtoolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
...
...
...
</androidx.coordinatorlayout.widget.CoordinatorLayout>
问题是,在这个屏幕上onPreDraw
的一个textView
中,我需要动态更改 的大小,appBar
这会在重新创建视图时弄乱appBar
' 的偏移量。在onViewCreated
我做:
textView.doOnPreDraw {
appBar.layoutParams = appBar.layoutParams.apply {
height = requireContext().dip(300)
}
}
所以现在当我(例如)完全折叠时,转到不同的片段然后返回,appBar
的偏移量完全搞砸了,我处于这个半展开状态。这个问题有什么解决办法吗?
解决方案
推荐阅读
- python - Numpy - 将小数组放在大数组的坐标处?
- flutter - 错误:flutter/lib/ui/ui_dart_state.cc(166)未处理的异常:类型'_CompactLinkedHashSet
' 不是类型 'FutureOr 的子类型 - jupyter-notebook - Jupyter notebook 在被移动到不同的目录后似乎记得以前的路径(!pwd)?
- node.js - 读取随机用户firestore
- podio - 在 webhook 之后计算的字段
- python - 基础django项目部署信息
- python - 相当于python中的js then()?
- reactjs - 如何传递钩子状态值
- c++ - 获取 const 方法的地址
- c++ - Qt 静态添加参数到连接指令