Android开发 - 设置DialogFragment全屏显示

默认的DialogFragment并不是全屏,但有些需求需要我们将对话框设置为全屏(内容全屏),Android并没有提供直接的API,通过其它不同的方法设置全屏在不同的机型上总有一些诡异的问题,经过测试,下面的方法可以实现各个机型的全屏。
测试 SDK Version = 28

覆写Fragment的onStart()方法:

@Override
public void onStart() {
    super.onStart();
        Dialog dialog = getDialog();
        if (dialog != null) {
            Window window = dialog.getWindow();
            if (window != null) {
                int width = ViewGroup.LayoutParams.MATCH_PARENT;
                int height = ViewGroup.LayoutParams.MATCH_PARENT;
                window.setLayout(width, height);
            }
        }
    }
}

上面的方法可以成功设置Dialog为全屏,但是如果在全屏的Dialog顶部有View的情况下,在某些机型View会被状态栏遮住(比如三星S9),这时需要一些特殊的设置来处理,可以参考我的文章:解决DialogFragment在全屏时View被状态栏遮住的问题

本文原始地址,如有更多疑问,请参考我的其它Android相关博客:我的博客地址

原文地址:http://blog.51cto.com/11761032/2307554

时间: 2024-09-29 04:42:09

Android开发 - 设置DialogFragment全屏显示的相关文章

Android开发中的全屏背景显示方案

引子 不管是Android还是iOS平台中,都可以看到一些应用在启动的时候会先出现一个启动画面(Splash Activity),如QQ.微信等.这个启动画面中往往会将ActionBar和Status Bar隐藏掉,然后用户进入一种沉浸的状态,形成更强烈的视觉冲击.一方面,这可以给用户留下更深刻的使用体验,从而产生一定品牌效应:另一方面,也给应用的启动初始化留下了充裕的时间,避免因为启动时间过长而给用户留下不良的印象.因此,全屏显示在手机应用中得到了广泛的应用.那么这篇博客中就记录下全屏显示的一

Android中界面实现全屏显示的两种方式

在开发android的应用当中,我们会遇到将一些界面设置为全屏显示的格式,有两种实现的方法.其一是在Java代码中实现,其二是在配置文件中实现. 1. 在Java代码中设置 super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); //无title getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, Window

Xcode 设置图片全屏显示

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.// UIImage *image = [UIImage imageNamed:@"initial_page_bg.jpg" ]; UIImageView *imageView = [[UIImageView alloc]initWithImage:image

Android 去掉标题以及全屏显示

1,没去掉标题和状态栏的截图. 2,具体代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // #########一定要写在加载布局文件之前############### //去掉标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); //全屏显示 getWindow().setFlags( Win

Android:设置APP全屏、横屏、竖屏、常亮的方法

全屏 在Activity的onCreate方法中的setContentView(myview)调用之前添加下面代码 requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏 横屏(两种) 1.修改Activity的onR

设置页面全屏显示

在vue中使用screenfull全屏组件 // 安装 npm install screenfull --save-dev // 在需要使用全屏功能的组件中引入screenfull import screenfull from 'screenfull' // 使用 screenfull.toggle() 原文地址:https://www.cnblogs.com/Yancyzheng/p/11692249.html

Qt中子窗口全屏显示与退出全屏

在Qt开发中偶尔遇到子窗口全屏显示和退出全屏的功能需求,是一种比较正常的情况,首先,我们需要知道子窗口全屏显示与退出全屏主要会调用的方法有哪些,下面将列举此过程主要调用的方法: isFullScreen():判断窗口当前是处于全屏状态还是非全屏状态 setWindowFlags(Qt::WindowFlags type):设置窗口属性 showFullScreen():设置窗口全屏显示 showNormal():设置窗口恢复原来显示(Restores the widget after it ha

Fullscreen API 全屏显示网页

第一次看到应用 Fullscreen API 全屏显示网页,是 FaceBook 中的照片放大.作为一个比较新的 API,目前只有 Safari.Chrome 和 FireFox 三种浏览器支持该特性.因为尚未发布正式版的标准,所以必须使用浏览器特定的方法,也就是应用添加前缀(webit/moz)的方法. 这个 API 不仅能够使整个页面全屏显示,也可以使页面中的某个元素全屏显示.它的设计初衷是为了全屏显示 HTML5 视频和游戏,以便更全面的替代 flash 功能.尽管还有很多有待完善的地方,

Android - 设置ImageView为全屏显示

设置ImageView为全屏显示 本文地址: http://blog.csdn.net/caroline_wendy ImageView默认会适应屏幕大小, 如果想使用全屏填充, 则需要使用: android:scaleType="fitXY" android:scaleType="matrix" 注意android:scaleType的参数选择. 参考: http://developer.android.com/reference/android/widget/I