如何删除AlertDialog周围的空白或颜色

时间:2015-02-10 12:32:12

标签: android alertdialog

我创建了一个布局,对其进行了膨胀,然后将其分配给AlertDialog。一切都很好,但我无法弄清楚为什么我的AlertDialog周围出现了空白区域。

布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="20dp"
    android:background="@drawable/dialog_backgrounds">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Player Name"
        android:id="@+id/tvPlayerName"
        android:textSize="24sp"
        android:textIsSelectable="false"
        android:textColor="#FFFFFF"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text=""
        android:ems="10"
        android:id="@+id/etPlayerName"
        android:gravity="center"
        android:textSize="24sp"
        android:textColor="#FFFFFF"
        android:background="@drawable/hintborder"
        android:padding="4dp"
        android:maxLength="5"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>

Android Java代码:

View nameDialogView = View.inflate(MainActivity.this, R.layout.player_name_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
final AlertDialog dialog = builder.create();
dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);
dialog.setView(nameDialogView);
dialog.show();

背景图片位于png和9-patch

我得到的结果:

enter image description here

请指导我这里有什么问题或有任何限制。感谢。

1 个答案:

答案 0 :(得分:8)

我将AlertDialog更改为Simple Dialog并添加了几行解决问题的行。

final Dialog dialog = new Dialog(MainActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(nameDialogView);
dialog.show();
dialog.getWindow().getDecorView().setBackgroundResource(android.R.color.transparent);