Как удалить белые углы диалогового окна (не AlertDialog и DialogFragment)? - PullRequest
1 голос
/ 12 июля 2019

Я создал 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()
    }
}

Есть много вопросов, подобных этому. Но я просто вижу AlertDialog или DialogFragment.

Я пытался с

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 Ответ

0 голосов
/ 12 июля 2019

Возможно, вам следует исправить диалоговое окно настроек или создать собственный 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"/>
...