BottomSheetDialog和BottomSheetDialogFragment固定高度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BottomSheetDialog和BottomSheetDialogFragment固定高度相关的知识,希望对你有一定的参考价值。

参考技术A 在onCreate方法中调用setPeekHeight和setMaxHeight方法即可

重写onCreateDialog方法并返回上面的dialog

Android BottomSheetDialog设置背景透明无效?(解决)

BottomSheetDialog修改背景圆角

这里记录一个实际开发过程中遇到的问题,在日常开发中遇到底部弹窗的时候我会第一时间用到BottomSheetDialog,常规的使用就是有一个默认从底部出现的弹窗,但是为了美观,通常会使用圆角,来设置,比如这样。

很简单的布局

然后代码中设置一下。

	BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this);
    View dialogView = getLayoutInflater().inflate(R.layout.layout_dialog,null,false);
    bottomSheetDialog.setContentView(dialogView);
    bottomSheetDialog.getWindow().findViewById(R.id.design_bottom_sheet).setBackgroundColor(Color.TRANSPARENT);
    bottomSheetDialog.show();

这是常规的操作,在之前我一直是这么使用的,然后运行时也没有问题,但是在最近的一次使用中,我发现设置的圆角无效,我用的是白色圆角,这个BottomSheetDialog默认的布局背景色也是白色,通过代码设置为透明,结果发现无效果,如下图这样。

解决方法

为了解决这个问题,增加一个样式,在styles.xml中增加如下样式代码:

	<style name="BottomSheetDialogStyle" parent="Theme.Design.BottomSheetDialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:background">@android:color/transparent</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>

在创建BottomSheetDialog传入这个样式。

再运行一下:

这样就没有白色的背景色了。

以上是关于BottomSheetDialog和BottomSheetDialogFragment固定高度的主要内容,如果未能解决你的问题,请参考以下文章

Android使用BottomSheetBehavior 和 BottomSheetDialog实现底部弹窗

BottomSheetDialog 内 VideoView 的 MediaController 隐藏在 BottomSheetDialog 后面

BottomSheetDialog和BottomSheetDialogFragment固定高度

如何制作只有上角圆角的BottomSheetDialog? [复制]

膨胀BottomSheetDialog时替换片段

在 Android 中,BottomSheetDialog 未正确舍入顶角