【发布时间】:2012-01-12 13:34:05
【问题描述】:
我正在为所有 10.1 平板电脑创建我的应用程序,现在我正在三星 Galaxy 选项卡上尝试这个。 我已经完成了所有部分,但是关于平板电脑大小的警报对话框太小了。 我还创建了自定义警报对话框,但看起来不太好。 那么请告诉我,如果可以,我可以更改默认警报对话框的大小,然后如何。
或
如何创建类似于默认警报对话框的自定义警报对话框。
谢谢。
【问题讨论】:
标签: android
我正在为所有 10.1 平板电脑创建我的应用程序,现在我正在三星 Galaxy 选项卡上尝试这个。 我已经完成了所有部分,但是关于平板电脑大小的警报对话框太小了。 我还创建了自定义警报对话框,但看起来不太好。 那么请告诉我,如果可以,我可以更改默认警报对话框的大小,然后如何。
或
如何创建类似于默认警报对话框的自定义警报对话框。
谢谢。
【问题讨论】:
标签: android
请参考this one
根据 Android 平台开发人员 Dianne Hackborn 在this 讨论组帖子中的说法,Dialogs 将其 Window 的顶级布局宽度和高度设置为 WRAP_CONTENT。要使 Dialog 更大,您可以将这些参数设置为 FILL_PARENT。
演示代码:
AlertDialog.Builder adb = new AlertDialog.Builder(this);
Dialog d = adb.setView(new View(this)).create();
// (That new View is just there to have something inside the dialog that can grow big enough to cover the whole screen.)
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(d.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
d.show();
d.getWindow().setAttributes(lp);
请注意,属性是在对话框显示后设置的。系统对它们何时设置很挑剔。 (我猜布局引擎必须在第一次显示对话框时设置它们。)
最好通过扩展 Theme.Dialog 来做到这一点,这样您就不必玩什么时候调用 setAttributes 的猜谜游戏了。 (虽然让对话框自动采用适当的浅色或深色主题,或者 Honeycomb Holo 主题需要更多的工作。可以根据http://developer.android.com/guide/topics/ui/themes.html#SelectATheme 完成)
【讨论】: