Android 10 dialog 第一次创建时候抖动

在Android 5.0之后,dialog默认无法全屏显示,需要手动设置。然而在Android 10上,首次创建dialog时会出现先显示为小屏再全屏的抖动现象。问题根源在于全屏设置的代码被放在了onShow方法中,导致在onCreate时未生效。正确的做法是将全屏设置的代码移到onCreate方法中,以避免在dialog的生命周期中发生抖动现象。
摘要由CSDN通过智能技术生成

    android 5.0以后dialog 宽度不能全屏,需要我们动态设置。

WindowManager.LayoutParams layoutParams = this.getWindow().getAttributes();
        layoutParams.width = RelativeLayout.LayoutParams.MATCH_PARENT;
        layoutParams.height =  RelativeLayout.LayoutParams.MATCH_PARENT;;
        this.getWindow().setAttributes(layoutParams);

设置以后在android 10 适配发现第一次创建dialog 会先小屏再全屏。最后定位原因,是给dialog 设置全屏的代码调用时机不对。

抖动是因为调用dialog 全屏放在了onShow方法中,在onCreate中调用可以解决抖动问题。

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        View contentView = getLayoutInflater().inflate(R.layout.include_exit_play, null);
        LogUtils.d(TAG, "onCreate: ");
        setContentView(R.layout.include_exit_play);
        ButterKnife.bind(this);
        WindowManager.LayoutParams layoutParams = this.getWindow().getAttributes();
        layoutParams.width = Relat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值