Android 自定义警报对话框中的空白

Android 自定义警报对话框中的空白,android,Android,我设计了一个自定义警报对话框,但在警报框的顶部和底部出现了黑色空间。我的布局代码如下。我试图在我的主线布局中给出负边距,但仍然存在问题 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_root" android:orientation="vertical" android:layout_

我设计了一个自定义警报对话框,但在警报框的顶部和底部出现了黑色空间。我的布局代码如下。我试图在我的主线布局中给出负边距,但仍然存在问题

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/layout_root"
          android:orientation="vertical"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:background="#000000"
          >
          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/first_part"
          android:orientation="horizontal"
          android:layout_width="580px"
          android:layout_height="90px"
          android:background="#1c1c1c"
          >
          <ImageView android:id="@+id/ic_messageicon"
           android:scaleType="fitXY"
           android:layout_width="70px"
           android:layout_height="70px"
           android:layout_marginLeft="20px"
           android:layout_marginTop="10px"
           android:src="@drawable/ic_messagewarn"
           />
         <TextView android:id="@+id/title"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginTop="25px"
          android:layout_marginLeft="15px"
          android:textSize="28px"
          android:typeface="sans"
          android:textColor="#FFFFFF"
          android:textStyle="bold"
          android:text="@string/errorTitle"
          ></TextView>



  </LinearLayout>
          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/first_part_line"
          android:orientation="horizontal"
          android:layout_width="580px"
          android:layout_height="1px"
          android:background="#626262"
          >
          </LinearLayout>
           <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/second_part"
          android:orientation="horizontal"
          android:layout_width="580px"
          android:layout_height="120px"
          android:background="#252525"
          >
        <TextView android:id="@+id/messagetext"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:typeface="sans"
          android:textColor="#FFFFFF"
          android:textSize="25px"
          android:layout_marginLeft="20px"
          android:layout_marginTop="20px"
          />
          </LinearLayout>
          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/third_part_line"
          android:orientation="horizontal"
          android:layout_width="580px"
          android:layout_height="1px"
          android:background="#aaaaaa"
          >
          </LinearLayout>



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/third_part"
          android:orientation="horizontal"
          android:layout_width="580px"
          android:layout_height="90px"
          android:background="#999999"
          >
        <Button android:id="@+id/yes"
           android:scaleType="fitXY"
           android:layout_width="236px"
           android:layout_height="57px"
          android:layout_marginTop="16px"
          android:onClick="onClick"
          android:text="@string/yes"
          android:textColor="#000000"
          android:textSize="20px"
          android:textStyle="bold"
          android:layout_marginLeft="27px"
          android:background="@drawable/messagebutton"
          />
          <Button android:id="@+id/no"
           android:scaleType="fitXY"
           android:layout_width="236px"
           android:layout_height="57px"
          android:layout_marginTop="16px"
          android:layout_marginRight="27px"
          android:onClick="onClick"
          android:text="@string/no"
          android:layout_alignParentRight="true"
          android:textColor="#000000"
          android:textSize="20px"
          android:textStyle="bold"
          android:background="@drawable/messagebutton"
          />
          </RelativeLayout>

如果您查看类源,您将看到大多数方法只是围绕私有AlertController mAlert的代理方法(facade)

查看类源代码,您将看到4个有趣的成员变量:

private int mViewSpacingLeft;
private int mViewSpacingTop;
private int mViewSpacingRight;
private int mViewSpacingBottom;
private boolean mViewSpacingSpecified = false;
将mViewSpacingSpecified设置为true将删除对话框顶部和底部的边框

通过更改此行可以正确完成此操作:

dialog.setView(layout);
致:

参考此

f查看类源,您将看到大多数方法只是围绕私有AlertController mAlert的代理方法(facade)

查看类源代码,您将看到4个有趣的成员变量:

private int mViewSpacingLeft;
private int mViewSpacingTop;
private int mViewSpacingRight;
private int mViewSpacingBottom;
private boolean mViewSpacingSpecified = false;
将mViewSpacingSpecified设置为true将删除对话框顶部和底部的边框

通过更改此行可以正确完成此操作:

dialog.setView(layout);
致:


在Values文件夹中引用此xml并添加此代码

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme" parent="android:Theme">
</style>
<style name="CustomDialogTheme" >
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:windowBackground">@color/transparent1</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowNoTitle">true</item>
</style>
然后将自定义对话框布局Xml文件设置为setContentView

dialog.setContentView(R.layout.customdialog);

xml中的值文件夹,并添加此代码

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme" parent="android:Theme">
</style>
<style name="CustomDialogTheme" >
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:windowBackground">@color/transparent1</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowNoTitle">true</item>
</style>
然后将自定义对话框布局Xml文件设置为setContentView

dialog.setContentView(R.layout.customdialog);

您没有在末尾关闭父LinearLayout

您正在为父布局使用#000000颜色代码,这将在背景中显示黑色

尝试更改底色可能出现的颜色代码。和使用

 requestWindowFeature(Window.FEATURE_NO_TITLE);

在对话框类中,这将删除对话框标题,因此您的顶色也将删除。

您没有在末尾关闭父线性布局

您正在为父布局使用#000000颜色代码,这将在背景中显示黑色

尝试更改底色可能出现的颜色代码。和使用

 requestWindowFeature(Window.FEATURE_NO_TITLE);

在对话框类中,这将删除对话框标题,因此您的顶色也将删除..

您正在为视图组提供android:background=“#000000”黑色背景。这可能就是原因。请参考我的答案:[[1]:您正在为您的视图组提供android:background=“#000000”黑色背景。这可能就是原因。请参考我的答案:[[1]: