【问题标题】:How to remove the white corners of Dialog(Not AlertDialog nor DialogFragment)?如何删除对话框的白角(不是 AlertDialog 或 DialogFragment)?
【发布时间】:2019-07-12 02:46:18
【问题描述】:

我这样创建了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>

这是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>

但没有任何结果。 我该怎么办?

【问题讨论】:

    标签: android android-styles android-dialog


    【解决方案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 是否设置了样式?
    • 是的,我在样式中添加了&lt;item name="android:windowBackground"&gt;@android:color/transparent&lt;/item&gt;。而且没有用。
    猜你喜欢
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多