我正在关注this代码来创建自定义对话框,但我没有得到如何删除对话框标题栏?
AlertDialog alertDialog;
@Override
protected Dialog onCreateDialog(int id) {
AlertDialog dialogDetails = null;
switch (id) {
case DIALOG_LOGIN:
LayoutInflater inflater = LayoutInflater.from(this);
View dialogview = inflater.inflate(R.layout.dialog_layout, null);
AlertDialog.Builder dialogbuilder = new AlertDialog.Builder(this);
dialogbuilder.setTitle("Login");
dialogbuilder.setView(dialogview);
dialogDetails = dialogbuilder.create();
break;
}
return dialogDetails;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
switch (id) {
case DIALOG_LOGIN:
alertDialog = (AlertDialog) dialog;
.......
}
我知道要删除警报对话框的标题区域,我们必须使用requestWindowFeature(Window.FEATURE_NO_TITLE);
但是我不知道我必须放在哪里?
答案 0 :(得分:28)
如果您不想在警告对话框中使用标题栏,则只需从代码中删除以下行。
dialogbuilder.setTitle("Login");
如果仍然无效,请添加以下行。
dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE);
答案 1 :(得分:20)
在dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
之前使用dialog.setContentView(R.layout.logindialog);
,这样您就可以隐藏Dialog
的标题。
答案 2 :(得分:5)
使用def end_other(s1,s2):
return bool(re.search(s1+'$',s2,re.I)) or bool(re.search(s2+'$',s1,re.I))
答案 3 :(得分:3)
首先删除此行:
dialogbuilder.setTitle("Login");
然后添加这个:
dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE);
答案 4 :(得分:2)
删除
dialogbuilder.setTitle("Login");
答案 5 :(得分:2)
试试这个::
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater)
mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog,
(ViewGroup) findViewById(R.id.layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.android);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
答案 6 :(得分:1)
我找不到使用AlertDialog Builder的.requestWindowFeature
。
如果您在使用构建器构建警报对话框时不想拥有标题,请使用new AlertDialog.Builder(getContext(), android.R.style.Theme_Material_Light_Dialog_NoActionBar_MinWidth);
答案 7 :(得分:0)
最终,在摩托罗拉Droid Razr M(AOS 4.4)智能手机上,这些方法无效,我相信市场上还有其他类似的手机。唯一的影响来自:
self.tabBar.isTranslucent = false
该标题没有文字,但其视图仍然存在于对话框视图中(看起来像顶部的空视图)。所以我找到的唯一方法是基于this answer:
setTitle(null);
setCustomTitle(null);
答案 8 :(得分:0)
使用具有自定义布局的对话框,它肯定会起作用
final Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_layout);
Button btOk = dialog.findViewById(R.id.btOk);
Button btCancel = dialog.findViewById(R.id.btCancel);
btOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//To Do
dialog.dismiss();
}
});
btCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
dialog.setCancelable(false);
dialog.show();
custom_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:id="@+id/btOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Ok" />
<Button
android:id="@+id/btCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Cancel" />
</LinearLayout>
答案 9 :(得分:-4)
使用此
AlertDialog.Builder dialogbuilder = new AlertDialog.Builder(this);
dialogbuilder .requestWindowFeature(Window.FEATURE_NO_TITLE);
dialogbuilder.setView(dialogview);
dialogDetails = dialogbuilder.create();