Android自定义警报对话框未正确绘制

Android自定义警报对话框未正确绘制,android,xml,customization,android-alertdialog,android-custom-view,Android,Xml,Customization,Android Alertdialog,Android Custom View,我正在尝试自定义AlertDialog的外观。问题是我不知道如何去除第一个文本视图上方出现的黑线,以及底部(灰色按钮区域上方)的EditText 这是我的XML。我错过了什么 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" a

我正在尝试自定义AlertDialog的外观。问题是我不知道如何去除第一个文本视图上方出现的黑线,以及底部(灰色按钮区域上方)的EditText

这是我的XML。我错过了什么

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="@color/butGreyBack"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

      <TextView
        android:id="@+id/tv_title"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:layout_weight="30"
        android:text=""
        android:background="#00000000"
        android:textColor="@android:color/white"
        android:textSize="22sp"        
        android:layout_margin="0dp"     
        android:gravity="center" />

      <TextView
        android:id="@+id/tv_prompt"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:layout_weight="30"
        android:text=""
        android:background="#00000000"
        android:textColor="@android:color/white"
        android:textSize="18sp"        
        android:layout_margin="0dp"     
        android:gravity="center" />

    <EditText
        android:id="@+id/edit_text"
        android:inputType="textCapSentences|textAutoCorrect"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="4dp"/>
</LinearLayout>
@火花

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

包装内容 包装内容 @颜色/透明度1 假的 真的 并将此主题引用到您的对话框中,如下所示

Dialog=新建对话框(活动,R.style.CustomDialogTheme); 然后将自定义对话框布局Xml文件设置为setContentView

setContentView(R.layout.customdialog)

2) 您没有在末尾关闭父LinearLayout

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

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

requestWindowFeature(窗口。功能\u无\u标题)

在对话框类中,这将删除对话框标题,因此顶部颜色也将删除

如果你需要帮助,请告诉我


谢谢

我最终通过实现我自己的自定义对话框而不是使用AlertDialog解决了这个问题。

谢谢-将尝试一下-我也刚刚发布了我的代码,以防出现问题。好的。试试我给你的建议。如果你仍然面临问题。我会给你发送没有黑线和边框的代码。还有你我接受了我的回答。如果你的回答对我来说是正确的,我一定会接受。然而,我不明白你的意思。我最初剪切并粘贴了格式不正确的XML,因此看起来XML是错误的,现在可以了。我不明白你在1)和2)中的建议,我没有任何#000000的值。我有#00000000(透明).requestWindowFeature(Window.FEATURE_无标题);在对话框类中,这将删除对话框标题,因此顶部颜色也将删除..我尝试了:alertDialog.requestWindowFeature(Window.FEATURE\u NO\u title);在setView()之后,这没有帮助:(使父线性布局宽度和高度与父线性布局宽度和高度匹配
  View alertView;

  AlertDialog.Builder builder = new AlertDialog.Builder( mContext );

  LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
  alertView = inflater.inflate(R.layout.alert_dialog_text, null);

  builder.setView( alertView );

  AlertDialog alertDialog = builder.create();
  alertDialog.setView( alertView, 0,0,0,0 );

  final EditText input = (EditText) alertView.findViewById( R.id.edit_text );
  TextView tvTitle  = (TextView) alertView.findViewById( R.id.tv_title );
  TextView tvPrompt = (TextView) alertView.findViewById( R.id.tv_prompt );

  tvTitle.setText( "Rename Playlist" );
  tvPrompt.setText( "Enter new Playlist name." );

  // Set up the buttons
  builder.setPositiveButton( "OK", new DialogInterface.OnClickListener()
  {
    @Override
    public void onClick( DialogInterface dialog, int which )
    {
      mNewName = input.getText().toString();
    }
  } );

  builder.setNegativeButton( "Cancel", new DialogInterface.OnClickListener()
  {
    @Override
    public void onClick( DialogInterface dialog, int which )
    {
      mNewName = "";
      dialog.cancel();
    }
  } );

  builder.show();