web-dev-qa-db-ja.com

Android BottomSheetDialogFragmentの角が丸くなっています

BottomSheetDialogFragmentを使用していて、右上/左上の角を丸めて正常に機能していますが、丸い角の後ろが透明ではなく、非常に煩わしいことに気付きました。

以下のスクリーンショットで目立ちます。

enter image description here

それらを透明にするにはどうすればよいですか?

8
Vahid Amiri

トップラウンドレイアウトを実現するには、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" />

これにより、ボトムシートの背景レイアウトが変更されます

注:下部のシートダイアログビューのレイアウトからすべての背景を削除します

0
Atul