我试图自定义AlertDialog的外观。问题是,我不知道如何摆脱底部(灰色按钮区域上方)第一个TextView和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>
这里也是代码 - 这可能是问题所在:
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();
答案 0 :(得分:1)
... @sparky
1)值文件夹中的xml并添加此代码
包装内容 包装内容 @色/ transparent1 假 真正 并在此对话框中引用此主题
Dialog dialog = new Dialog(activity,R.style.CustomDialogTheme); 然后将您的自定义Dialog Layout Xml文件设置为setContentView。
dialog.setContentView(R.layout.customdialog);
2)你没有在最后关闭父LinearLayout
并且您使用#000000颜色代码进行父布局,这将在背景显示黑色
尝试更改底色颜色代码的机会。并使用
requestWindowFeature(Window.FEATURE_NO_TITLE);
在对话框类中,这将删除对话框标题,因此您的顶部颜色也将删除..
如果您需要任何帮助,请告诉我
由于
答案 1 :(得分:1)
我最后通过实现自己的自定义对话框而不是使用AlertDialog来解决这个问题。