我有一个自定义 BttomSheetDialogFragment 并且我想在底部视图顶部有圆角
这是我的自定义类,它膨胀了我想从底部显示的布局
View mView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.charge_layout, container, false);
initChargeLayoutViews();
return mView;
}
而且我有这个 XML 资源文件作为背景:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<corners android:topRightRadius="35dp"
android:topLeftRadius="35dp"
/>
<solid android:color="@color/white"/>
<padding android:top="10dp"
android:bottom="10dp"
android:right="16dp"
android:left="16dp"/>
</shape>
问题是,当我将此资源文件设置为我的布局根元素的背景时,角落仍然没有圆角。
我不能使用下面的代码:
this.getDialog().getWindow().setBackgroundDrawableResource(R.drawable.charge_layout_background);
因为它覆盖了 BottomSheetDialog 的默认背景,并且我的底部视图上方不会有任何半透明的灰色。
原文由 Russell Ghana 发布,翻译遵循 CC BY-SA 4.0 许可协议
创建自定义可绘制
rounded_dialog.xml
:然后使用drawable作为背景覆盖
bottomSheetDialogTheme
上的styles.xml
:这将更改应用程序的所有 BottomSheetDialogs。