Android自定义警报对话框未正确绘制
我正在尝试自定义AlertDialog的外观。问题是我不知道如何去除第一个文本视图上方出现的黑线,以及底部(灰色按钮区域上方)的EditText 这是我的XML。我错过了什么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
<?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();