BottomSheetDialogFragment
を使用していて、右上/左上の角を丸めて正常に機能していますが、丸い角の後ろが透明ではなく、非常に煩わしいことに気付きました。
以下のスクリーンショットで目立ちます。
それらを透明にするにはどうすればよいですか?
トップラウンドレイアウトを実現するには、bottom sheet theme
を変更する必要があります
カスタムドローアブルbackground_bottom_sheet_dialog_fragment.xmlを作成します。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<corners
Android:topLeftRadius="8dp"
Android:topRightRadius="8dp" />
<padding Android:top="0dp" />
<solid Android:color="@color/white" />
</shape>
次に、ドローアブルを背景として使用して、styles.xmlのbottomSheetDialogThemeをオーバーライドします。
<!--Bottom sheet-->
<style name="BottomSheet" parent="@style/Widget.Design.BottomSheet.Modal">
<item
name="Android:background">@drawable/background_bottom_sheet_dialog_fragment
</item>
</style>
<style name="BaseBottomSheetDialog"
parent="@style/Theme.Design.Light.BottomSheetDialog">
<item name="Android:windowIsFloating">false</item>
<item name="bottomSheetStyle">@style/BottomSheet</item>
</style>
<style name="BottomSheetDialogTheme" parent="BaseBottomSheetDialog" />
これにより、ボトムシートの背景レイアウトが変更されます
注:下部のシートダイアログビューのレイアウトからすべての背景を削除します