关于Popupwindow在Activity加载中显示报错问题

来源:互联网 发布:mysql max函数 编辑:程序博客网 时间:2024/06/17 05:08

比如在跳转的时候要加载数据,加载数据的时候给个提示框,数据加载中...等等。开始我放在Activity的前3个生命周期里,每个里面都会报错,于是网上搜集了几个方法,基本都可以解决这种问题。


1、使用handler去延迟显示这个popupwindow,代码如下

new Handler().postDelayed(new Runnable() {            @Override            public void run() {                window.showAtLocation(view, Gravity.CENTER,0,0);            }        },1000);


2、重写onWindowFocusChanged(),然后在里面显示显示popupwindow就可以了,但是当焦点改变的时候,这个方法会被多次的调用,如果只调用一次,可以如下写法:

    @Override    public void onWindowFocusChanged(boolean hasFocus) {        super.onWindowFocusChanged(hasFocus);        if (isFirst){            isFirst=false;            window.showAtLocation(view, Gravity.CENTER,0,0);        }    }


3、异步去显示popupwindow,这个方法比较推荐!!

getWindow().getDecorView().post(new Runnable() {            @Override            public void run() {                window.showAtLocation(view, Gravity.CENTER,0,0);            }        });
除了第二种要重写方法,第一和第三可以在oncreate里面写,但是自己测试第一种方法的时候,总达不到满意的效果。所以个人推荐第三种方法!

写的不好的地方望指出!



3 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我的世界没有痒怎么办 七日杀被ban了怎么办 吕框箱子上保护摸撕不掉怎么办 我的世界开光影卡怎么办 我的世界买不了怎么办 我的世界延迟高怎么办 我的世界过于昂贵怎么办 白色麻布染上别的颜色怎么办 印度老山檀香开裂了怎么办 专升本没过线怎么办 西安公租房小孩上学怎么办 全民k歌直播没人怎么办 在全民直播没人看怎么办 皮肤又黄又粗怎么办 被强制消费后应怎么办? 当保安不发工资怎么办? 辅警改革流管员怎么办 退伍证上照片毁了怎么办 辅警年龄大了怎么办 交警2小时不出警怎么办 中暑发烧39度了怎么办 中暑头疼怎么办最快最有效 十五个月的宝宝拉肚子怎么办 中暑了头疼想吐怎么办 2周岁中暑了呕吐怎么办 容易中暑的人该怎么办 喷泡3m反光脏了怎么办 新摩托车被交警查到怎么办 写字楼保安夜班巡逻害怕怎么办 全民k歌歌曲删了怎么办 莲藕洞里的黑膜怎么办 鞋子后面的拉链磨脚怎么办 磨砂鞋尖踢掉皮怎么办 塔吊吊装过程中遇到障碍物怎么办 高速路上突然遇到障碍物怎么办 被不明物蛰了怎么办 喝酒后开车撞路政护栏怎么办 电脑过了质保期怎么办 电闸推不上去怎么办啊? 寝室的电闸不亮了怎么办 海绵城市改造只挖不修怎么办