我正在尝试在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不存在。如果取消注释使用“对话框构造器”的部分,则一切正常,但对话框布局上方的标题除外。
3 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
从头开始创建对话框时,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">
<item name="android:windowNoTitle">true</item>
</style>
接着:
Dialog dialog = new Dialog(context, R.style.FullHeightDialog);
- 3 回答
- 0 关注
- 414 浏览
添加回答
举报
0/150
提交
取消