在android中带圆角的对话框

Xar*_*mer 6 android android-theme android-dialogfragment

我已经解决了一些问题,但没有解决我的问题.

我创建了一个自定义DialogFragment.和根元素dialog is cardView.我设置cardCornerRadiuscardView.

然后我尝试设置透明对话框,因为背景颜色也随之显示.

然后我尝试设置对话框主题

<style name="PauseDialog" parent="@style/Theme.AppCompat.Light.Dialog">
       <!-- TTheme.AppCompat.Translucent-->
        <item name="android:windowAnimationStyle">@style/PauseDialogAnimation</item>
        <!--<item name="android:windowBackground">@android:color/transparent</item>-->
        <item name="android:windowBackground">@color/transparent</item>
        <item name="android:colorBackgroundCacheHint">@android:color/transparent</item>


        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowTitleStyle">@null</item>
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
        <item name="android:backgroundDimEnabled">false</item>
        <item name="android:background">@android:color/transparent</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

背景仍然存在.然后我也试过了

dialog.getWindow().setBackgroundDrawable(
                new ColorDrawable(Color.TRANSPARENT));
Run Code Online (Sandbox Code Playgroud)

但仍然对话框有与之相关的背景.

有什么工作吗?我怎么能摆脱它.

我创建了一个DialogFragmentonCreateDialog

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
                R.style.PauseDialog);
        setStyle(DialogFragment.STYLE_NO_FRAME, R.style.PauseDialog);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Har*_*att 11

如果您想要圆角,可以尝试使用xml将自定义形状应用于自定义对话框背景.以下代码将帮助您.

<shape xmlns:android="http://schemas.android.com/apk/res/android">

     <solid android:color="#FFFFFF" />
        <corners
            android:radius="10dp"/>

    </shape>
Run Code Online (Sandbox Code Playgroud)

您可以删除cardview作为顶部元素,因为对话框具有阴影和深度.在将contentview设置为对话框之前添加此行

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
Run Code Online (Sandbox Code Playgroud)