首先看不正常的图,点击tracing_dialog按钮弹出对话框
Android 4.4 Dialog 被状态栏遮挡的解决方法_第1张图片

然后看理论上的效果图
Android 4.4 Dialog 被状态栏遮挡的解决方法_第2张图片

观察两张图发现,不正常的图最上方被状态栏遮挡住了,而该问题存在于android4.4版本中。为了修复该问题,我们增加一个函数在Dialog的子类中,对于android4.4及以上版本进行修复,而android4.4以下版本不进行处理。

我们先来看有问题的代码

package cn.edu.zafu.demo;import android.app.Dialog;import android.content.Context;import android.os.Build;import android.os.Bundle;import android.view.WindowManager;/** * Created by lizhangqu on 2015/5/22. */public class TracingDialog extends Dialog {    public TracingDialog(Context mContext, int style) {        super(mContext, style);        setCancelable(false);    }    protected void onCreate(Bundle paramBundle) {        setContentView(R.layout.tracing_dialog);    }}

创建Dialog的方法如下,第一个参数是Context对象,第二个参数是主题文件对应的id

TracingDialog dialog=new TracingDialog(MainActivity.this, R.style.kdialog);dialog.show();

style如下

现在我们在TracingDialog中增加一个函数,该函数对android4.4及以上版本进行适配使其显示正常,增加的函数如下

private void applyCompat() {    if (Build.VERSION.SDK_INT < 19) {        return;    }    getWindow().setFlags(            WindowManager.LayoutParams.FLAG_FULLSCREEN,            WindowManager.LayoutParams.FLAG_FULLSCREEN);}

在TracingDialog的onCreate方法中调用以上函数即可,如下

protected void onCreate(Bundle paramBundle) {    applyCompat();    setContentView(R.layout.tracing_dialog);}

姑且不考虑继承Dialog这种创建Dialog的方法,没办法,历史遗留问题。Dialog的创建方法官方已经建议使用DialogFragment进行创建了。就这样,一个函数解决了问题!

参考文章

  • dialog-on-android-kitkat-seems-to-be-cut

更多相关文章

  1. Android 输入法弹出监听,保持标题固定不被顶出布局,EditText显示在
  2. 百度地图定位SDKv4.2版本(android)的使用教程
  3. Android的持续化集成及多版本打包
  4. Android 内部存储相关的函数(getCacheDir,getDir, getFileStreamP
  5. Android中Log.d和Log.v如何实现在release版本不输出
  6. ios与android语音通用方案 编译libopencore-amr xcode4.5/ios6版
  7. cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
  8. 将React Native的版本从0.19.0升级到最新版或者大于0.20.1的解决
  9. android版本飞鸽传书源码

随机推荐

  1. Android Service和IntentService的区别
  2. Android架构分析之Android消息处理机制(二
  3. 在deepin系统中adb操作android文件的方法
  4. Android中使用响应式编程RxJava
  5. 修改frameworks源码去掉android的下拉通
  6. Android六大基本布局详解
  7. fedora20 下配置cocos2d-x3.2开发环境 ju
  8. android的selector的用法
  9. android 模拟器命令 转载
  10. Android 显示不满屏的问题解决