递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 226|回复: 1
打印 上一主题 下一主题

[类库封装] 安卓setcolor以下全嵌入导致报错怎么办?

[复制链接]

48

主题

81

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
跳转到指定楼层
楼主
发表于 2024-9-10 14:16:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    public static void setColor(Activity activity, @ColorInt int color, int statusBarAlpha) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.噜阿噜LIPOP) {
            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            activity.getWindow().setStatusBarColor(calculateStatusColor(color, statusBarAlpha));
        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView();
            View fakeStatusBarView = decorView.findViewById(FAKE_STATUS_BAR_VIEW_ID);
            if (fakeStatusBarView != null) {
                if (fakeStatusBarView.getVisibility() == View.GONE) {
                    fakeStatusBarView.setVisibility(View.VISIBLE);
                }
                fakeStatusBarView.setBackgroundColor(calculateStatusColor(color, statusBarAlpha));
            } else {
                decorView.addView(createStatusBarView(activity, color, statusBarAlpha));
            }
            setRootView(activity);
        }
    }
其实没报错,因为我还没运行,但是就算不运行,我也知道一定会报错。
因为火山里的安卓窗口类,是不存在getWindow()方法的。
所以像这样写的话,肯定会报错

所以,要去封装getWindow()方法吗?
而getWindow()的返回值是android.view.window类
而window类会导入WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;

也就是说,无论如何,都会和自定义组件属性扯上关系。
所以,现在怎么办?
用@begin@end吗?

回复

使用道具 举报

443

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
39267
沙发
发表于 2024-9-10 14:26:21 | 只看该作者
没导入 WindowManager 包吧,怎么可能和自定义组件属性扯上关系……这俩都没关系。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-9-20 07:32 , Processed in 0.093069 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表