我尝试了很多变种来创建全屏对话框,但我无法做到。我需要一些东西,比如这个,有两个按钮:
答案 0 :(得分:4)
如果你真的想要一个全屏对话框,只需扩展Dialog
类并添加一些调整。 (您也可以在不扩展任何内容的情况下完成此任务,但我认为您可能希望将所有内容保存在一个位置)
在构造函数中,您需要设置样式(对于材质外观,或者它可以是空样式标记):
super(context, R.style.DialogStyle);
您还需要设置视图:(这是您定义这两个按钮的位置/内容的位置)
setContentView(R.layout.dialog_view);
最后,您可能还需要修改Windows布局参数:
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
我在测试的设备上发现设置样式是最重要的。
<强> *编辑* 强>
为了使它更清晰,你有两个选择:
public class MyDialog extends Dialog {
public MyDialog(Context context) {
super(context, R.style.YourStyle);
setContentView(R.layout.dialog_view);
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); //Optional
//Any other code you want in your constructor
}
}
然后当你想要展示它时:
//Inside your activity
MyDialog dialog = new MyDialog(this); //Assuming you are in an activity 'this' is your context
dialog.show();
或者你可以这样做:
Dialog normalDialog = new Dialog(this, R.style.YourStyle);
normalDialog.setContentView(R.layout.dialog_view);
normalDialog.show();
答案 1 :(得分:0)
我同意使用新活动。将HomeAsUp指示器设置为您想要的任何值,然后“保存”按钮可以是设置为显示ifRoom的单个菜单项。
http://developer.android.com/reference/android/app/ActionBar.html#setHomeAsUpIndicator(int)
机器人:showAsAction = [&#34; ifRoom&#34; | &#34;从未&#34; | &#34; withText&#34; | &#34;总是&#34; | &#34; collapseActionView&#34;]
答案 2 :(得分:0)
这是我用来显示没有操作栏的全屏对话框:
//Display fullscreen without actionbar
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Holo_Light_NoActionBar_Fullscreen);
} else {
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Material_Light_NoActionBar_Fullscreen);
}