android - 如何设置底片的最大高度可以以其他方式 WRAP_CONTENT?
问题描述
我有一个bottomsheetDialogFragment,它有一个嵌套滚动视图,它的子元素很少。
我已将父布局的高度设置为 WRAP_CONTENT,因为我想显示底部工作表取决于 textView 的高度。
但是如果 Textview 足够大,它会覆盖整个屏幕。我想将底部工作表显示到特定高度,如果文本视图很小,那么它应该遵循 WRAP_CONTENT。我已经搜索了 SO,但没有找到我的查询的单一答案。
我可以做另一件事,我只是在布局放置之前测量文本视图的高度,然后动态决定高度。但令我惊讶的是,没有像底部板的最大高度这样的简单解决方案。
解决方案
在 styles.xml 文件中为它设置一个主题,如下所示:
<style name="BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
<item name="bottomSheetStyle">@style/bottomSheetStyleWrapper</item>
</style>
<style name="bottomSheetStyleWrapper" parent="Widget.Design.BottomSheet.Modal">
<item name="behavior_peekHeight">500dp</item>
</style>
然后在您的代码文件中像这样使用它:
BottomSheetDialog dialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
dialog.setContentView(R.layout.layout_bottom_sheet);
dialog.show();
推荐阅读
- loops - 无法使用 awk/gawk 循环多个输入文件
- angular - Angular 6 - 反应式表单和复选框值
- c# - 使用 JSON.NET 将部分 json 反序列化为 C# 中的数据表,其中密钥是动态的
- mysql - 一段时间内的最大平均值
- redis - 加速 400 GB Redis 还原
- android - 如何在具有不同数据的不同 viewpager 中使用相同的片段?
- c - Inline Assembler Syscall PTRACE(不允许操作)
- powershell - 使用 PowerShell 仅复制同一文件的每组的最后一个文件
- sql - TSQL:向“SELECT”结果集添加行
- oracle - 在 AIX 7.1 上构建时出现 oracle_fdw 错误