如何去除Dialog(非AlertDialog和DialogFragment)的白色角落?

3
我创建了一个名为line_dialog_border.xml的文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="@color/white"/>
    <corners android:radius="20dp"/>
    <stroke
            android:width="5dp"
            android:color="@android:color/black"/>
</shape>

enter image description here

这是kt中的对话框。
private fun showInternetCheckDialog(context: Context) {
    internetCheckDialog = Dialog(context)
    internetCheckDialog.setContentView(R.layout.dialog_internet_check)
    internetCheckDialog.window!!.requestFeature(Window.FEATURE_NO_TITLE)
    internetCheckDialog.window!!
          .setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
    internetCheckDialog.window!!
          .decorView.setBackgroundResource(R.drawable.line_dialogue_border)
    internetCheckDialog.setCanceledOnTouchOutside(false)

    val btnOk = internetCheckDialog.btn_ok

    btnOk.setOnClickListener {
        internetCheckDialog.dismiss()
    }

    try {
        if (!internetCheckDialog.isShowing) {
            internetCheckDialog.show()
        }
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

这是一个类似的问题。但我只看到AlertDialogDialogFragment
我已经尝试过。
dialog.window!!
    .setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialog.window!!
    .decorView.setBackgroundResource(R.drawable.line_dialogue_border)
dialog.window!!.setBackgroundDrawableResource(android.R.color.transparent);

这是布局的xml文件。我只是在上面创建的xml中添加了一个背景属性。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/line_dialog_border"
        android:padding="20dp"
        android:orientation="vertical">

    <TextView
            android:id="@+id/tv_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:textColor="@android:color/black"
            android:lineSpacingExtra="10dp"
            android:text="No\nInternet\nConnection"
            android:textAlignment="center"
            android:textSize="24sp"
    />
</RelativeLayout>

但是什么都没奏效。我该怎么办?
1个回答

1
也许您应该更正设置对话框窗口或创建自定义 style.xml。
Window window=this.getWindow();
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

style.xml:

<style name="DialogActivityStyle">
<item name="android:background">@android:color/white</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>

AndroidMainfest:
<activity android:name=".YourActivity"
          android:theme="@style/DialogActivityStyle"/>

你的AndroidManifest文件设置了样式吗? - lazy
是的,我已经在样式中添加了 <item name="android:windowBackground">@android:color/transparent</item>。但是没有起作用。 - c-an

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接