是否可以独立于活动的主题设置AlertDialog的样式?

时间:2013-01-24 12:10:37

标签: android user-interface dialog alertdialog android-alertdialog

我意识到这个问题有点奇怪,但我想停止使用已弃用的选项菜单并切换到操作栏。不幸的是,要做到这一点,我必须使用Holo主题,它带有之前不同的AlertDialog设计。

这种新设计打破了我的UI外观。是否可以在Holo风格的活动中创建旧式对话框?

相关问题:除了AlertDialog之外还有一个能够显示我自己的布局的弹出窗口,而且我的自定义布局周围没有边框和其他主题定义的东西吗?

2 个答案:

答案 0 :(得分:1)

根据AndroidManifest文件中设置的minSDKVersion,您可以为对话框选择主题。你可以将它们设置为Holo / Device Default但是要做到这一点你的minSdk值应该是10+甚至我认为使用DeviceDefault它应该是JellyBean。

如果您想创建自己的布局并使用它而没有任何边框等会破坏您的设计,您应该使用Dialog而不是AlertDialog并自定义它。你可以这样做:

final Dialog alert = new Dialog(FingerPaintActivity.this, android.R.style.Theme_Light_Panel);
alert.requestWindowFeature(Window.FEATURE_NO_TITLE); // no title 
alert.getWindow().getAttributes().windowAnimations = R.style.PauseDialogAnimation; // this is used for custom animation when dialog is showing and hiding 
alert.setContentView(getLayoutInflater().inflate(R.layout.stamps, null)); // here is your custom layout
alert.getWindow().setLayout(width-50, (height-100)); // set height / width

当你想在你的按钮中触发一个onlclick时,例如放在R.layout.stamps中,就像在例子中你应该这样做:

Button dog = (Button) alert.findViewById(R.id.dog_stamp);

答案 1 :(得分:0)

您可以创建自定义AlertDialog

例如:http://www.mkyong.com/android/android-custom-dialog-example/