我有一个 GridView,我想实现一个对话框,在该对话框中选定的图片应该以全屏模式显示。
那么我如何使对话框以全屏模式显示呢? 谢谢!
我有一个 GridView,我想实现一个对话框,在该对话框中选定的图片应该以全屏模式显示。
那么我如何使对话框以全屏模式显示呢? 谢谢!
Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen)
DialogFragment
时,我发现状态栏颜色被对话框覆盖了,整个屏幕都是对话框的背景颜色。有人知道解决方法吗?我尝试设置对话框窗口的statusBarColor,但没有效果。另外,导航栏颜色也会被覆盖。 - androidguydialog = Dialog(context!!, android.R.style.Theme_Black_NoTitleBar_Fullscreen)
。 - Shailendra MaddaonCreate()
方法中。getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT);
此外,将对话框的样式设置为:
<style name="full_screen_dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>
通过构造函数可以实现此功能,例如:
public FullScreenDialog(Context context)
{
super(context, R.style.full_screen_dialog);
...
编辑:除了上述所有内容的替代方法是将样式设置为android.R.style.ThemeOverlay
,就这样。
编辑2:为了支持Material库,在应用程序(模块)的build.gradle
文件中添加Gradle依赖项。
implementation "com.google.android.material:material:$material_version"
然后将对话框的主题设置为 R.style.ThemeOverlay_MaterialComponents
android.R.style.ThemeOverlay
是关键。 - YeungThemeOverlay.MaterialComponents
是否也适合。你能帮我确认一下吗? - android developergetDialog().getWindow().setBackgroundDrawable(new ColorDrawable(any bg color));
将“扩展”对话框的宽度到全屏,无需设置主题 android.R.style.ThemeOverlay
。请注意,仅适用于“宽度”。 - YeungThemeOverlay.MaterialComponents
就足够了。谢谢。 - Ahmad Reza Enshaee我发现最简单的方法
Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
dialog.setContentView(R.layout.frame_help);
dialog.show();
编辑 在StackOverflow允许我们对答案进行版本控制之前,这是适用于Android 3及以下版本的答案。请不要因为它现在不能为您工作而将其投票降低,因为它绝对可以在旧版Android上运行。
您只需要在onCreateDialog()
方法中添加一行代码:
@Override
protected Dialog onCreateDialog(int id) {
//all other dialog stuff (which dialog to display)
//this line is what you need:
dialog.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);
return dialog;
}
FLAG_FULLSCREEN 无法解析或不是一个字段
。 - Luis A. Floritdialog = new Dialog(getActivity(),android.R.style.Theme_Translucent_NoTitleBar);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.loading_screen);
Window window = dialog.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.CENTER;
wlp.flags &= ~WindowManager.LayoutParams.FLAG_BLUR_BEHIND;
window.setAttributes(wlp);
dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
dialog.show();
试试这个。