如何自定义对话框的标题布局

Posted

技术标签:

【中文标题】如何自定义对话框的标题布局【英文标题】:How can I customize the header layout of a dialog 【发布时间】:2010-12-28 11:03:39 【问题描述】:

android中,是否可以自定义对话框的标题布局(图标+文本)布局?或者我可以设置标题文本的自定义字符串值吗?

谢谢。

【问题讨论】:

【参考方案1】:

如果您为对话框和标题设置了自定义布局,则可以更改对话框的标题。我只使用过这种方法来完全删除标题,但这应该适用于自定义标题:

dialog = new Dialog(context);
Window window = dialog.getWindow();
window.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
dialog.setContentView(R.layout.my_dialog_layout);
window.setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_header);

这有点复杂(因为您还必须设置对话框的布局),但它比子类化 Dialog 更容易。

【讨论】:

【参考方案2】:

原来的 Dialog 类似乎缺乏设置图标的能力,但您可以轻松扩展 AlertDialog 并设置自定义视图(与您的 Dialog 实例使用相同),您只需要这样的东西

 class MyDialog extends AlertDialog 
     public MyDialog(Context ctx) 
        super(ctx);
        LayoutInflater factory = LayoutInflater.from(context);
        View view = factory.inflate(R.layout.dialog_layout, null);
        setView(view);
        setTitle("MyTitle");
        setIcon(R.drawable.myicon);
     
 

【讨论】:

以上是关于如何自定义对话框的标题布局的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义布局将宽度和高度设置为 AlertDialog 无法正确应用

自定义对话框问题中的约束布局

Android 问题:根活动使用自定义对话框布局而不是 main.xml

如何在广播接收器中显示自定义警报对话框?

无法动态更改自定义 DialogFragment 布局

android 搜索:自定义建议布局