美文网首页
1. Application和Activity的尺寸不一致

1. Application和Activity的尺寸不一致

作者: 努力生活的西鱼 | 来源:发表于2021-04-15 21:46 被阅读0次

    今天工作的时候,遇到一个有趣的问题。

    车机的全屏尺寸是1750,右屏的尺寸是1175,当我们的App在右屏上面启动的时候,在Application里面的Context获取到的宽度是1750,但是在Activity里面拿到的宽度是1175,这样的话,对我们的右屏适配是有影响的。

    这里的关键点是要把Activity的Context更新为全局的Context。

    在Activity里面
    @Override
    protected void initData() {
        // 获取Activity的最小宽
        smallestScreenWidthDp = getActivity().getResources().getConfiguration().smallestScreenWidthDp;
        // 右屏启动的时候,Application里面的屏幕的宽度与Activity里面的屏幕宽度不一样
        if (smallestScreenWidthDp != ContextHolder.getContext().getResources().getConfiguration().smallestScreenWidthDp) {
            updateContext(smallestScreenWidthDp);
        }
    }
    
    
    /**
     * 更新全局的Context
     */
    private void updateContext(int smallestScreenWidthDp) {
        Configuration configuration = getResources().getConfiguration();
        configuration.smallestScreenWidthDp = smallestScreenWidthDp;
        Context context = new ContextWrapper(this.createConfigurationContext(configuration));
        ContextHolder.setContext(context);
    }
    
    晚安
    2021-04-15

    相关文章

      网友评论

          本文标题:1. Application和Activity的尺寸不一致

          本文链接:https://www.haomeiwen.com/subject/fzbjlltx.html