Android:如何创建没有标题的对话框?

我正在尝试在Android中生成自定义对话框。我这样创建对话框:


dialog = new Dialog(this);

dialog.setContentView(R.layout.my_dialog);

除了对话框的标题,一切都正常。即使我没有设置对话框的标题,对话框的弹出窗口在对话框的位置也会有一个空格。


有什么办法可以隐藏对话框的这一部分吗?


我用AlertDialog尝试过,但似乎布局设置不正确:


LayoutInflater inflater = 

    (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View view = inflater.inflate(R.layout.map_dialog, null);


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

builder.setView(view);


// dialog = new Dialog(this);

// dialog.setContentView(R.layout.map_dialog);


dialog = builder.create();


((TextView) dialog.findViewById(R.id.nr)).setText(number);

如果使用此代码,则在最后一行中将获得空的Pointer Exception。该对话框不为null,因此我尝试检索的TextView不存在。

如果取消注释使用“对话框构造器”的部分,则一切正常,但对话框布局上方的标题除外。


潇潇雨雨
浏览 415回答 3
3回答

慕雪6442864

从头开始创建对话框时,FEATURE_NO_TITLE可以工作,如下所示:Dialog dialog = new Dialog(context);dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);但是在创建AlertDialog(或使用Builder)时它不起作用,因为它已禁用标题并在内部使用自定义标题。我看过SDK的来源,但我认为它无法解决。因此,要删除顶部间距,唯一的解决方案是直接使用Dialog类从头开始创建IMO自定义对话框。同样,可以使用一种样式来做到这一点,例如在styles.xml中:<style name="FullHeightDialog" parent="android:style/Theme.Dialog">&nbsp; &nbsp;<item name="android:windowNoTitle">true</item></style>接着:Dialog dialog = new Dialog(context, R.style.FullHeightDialog);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android