首页 > 解决方案 > 如何设置底片的最大高度可以以其他方式 WRAP_CONTENT?

问题描述

我有一个bottomsheetDialogFragment,它有一个嵌套滚动视图,它的子元素很少。

我已将父布局的高度设置为 WRAP_CONTENT,因为我想显示底部工作表取决于 textView 的高度。

但是如果 Textview 足够大,它会覆盖整个屏幕。我想将底部工作表显示到特定高度,如果文本视图很小,那么它应该遵循 WRAP_CONTENT。我已经搜索了 SO,但没有找到我的查询的单一答案。

我可以做另一件事,我只是在布局放置之前测量文本视图的高度,然后动态决定高度。但令我惊讶的是,没有像底部板的最大高度这样的简单解决方案。

标签: androidbottom-sheet

解决方案


在 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();

推荐阅读