当前位置: 首页 > news >正文

关于Google Pixel,或者安卓16,状态栏颜色无法修改的解决方案

场景

  • 谷哥手机pixel等原生安卓16的系统的状态栏异常显示,无法修改颜色

获取title布局(示例)

<?xml version="1.0" encoding="utf-8"?>
<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/layout_parent_head"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#ffffff"android:orientation="horizontal"><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/layout_head"android:layout_width="match_parent"android:layout_height="@dimen/layout_include_title_height"android:background="#ffffff"android:orientation="horizontal"><ImageViewandroid:id="@+id/back"android:layout_width="18dp"android:layout_height="26dp"android:layout_gravity="center_vertical"android:layout_marginStart="16dp"android:layout_marginEnd="16dp"android:background="@drawable/bg_back_title_selector" /><TextViewandroid:id="@+id/start_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:gravity="center"android:layout_gravity="center_vertical"android:textSize="14sp"android:textColor="@color/main_color"android:layout_marginStart="10dp"android:visibility="gone" /><TextViewandroid:id="@+id/head_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:layout_weight="1"android:ellipsize="end"android:layout_gravity="center"android:gravity="center"android:singleLine="true"android:text="@string/Tirepressure_detection"android:textColor="@color/main_color"android:textSize="16sp" /><ImageViewandroid:id="@+id/right_img"android:layout_width="36dp"android:layout_height="40dp"android:layout_gravity="center_vertical"android:layout_marginRight="8dp"android:padding="5dp"android:src="@drawable/title_setting"android:visibility="invisible" /><ImageButtonandroid:layout_width="40dp"android:layout_height="40dp"android:layout_gravity="center_vertical"android:layout_marginRight="8dp"android:background="@null"android:src="@drawable/exchange"android:visibility="gone" /><TextViewandroid:id="@+id/right_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="8dp"android:gravity="center"android:text="@string/send1"android:layout_gravity="end|center_vertical"android:textColor="@color/main_color"android:textSize="14sp"android:visibility="gone" /><TextViewandroid:layout_width="56dp"android:layout_height="40dp"android:layout_marginRight="8dp"android:gravity="center"android:text="@string/send1"android:textColor="@color/main_color"android:textSize="14sp"android:visibility="gone" /></FrameLayout>
</FrameLayout>

其中将标题布局包裹在一个FrameLayout里,然后主题里不进行任何状态栏颜色的配置。
使用第三方库或其他安卓原生api获取状态栏高度,手动设置被包裹视图的marginTop。
然后状态栏颜色可以直接用上面布局的FrameLayout背景色控制。如需调整状态栏文字颜色,使用原生api切换白色黑色即可。
此操作适配安卓所有版本。
当然关于Activity的window,需要去除TRANSLATG,FULLSCREEN的flag

window.clearFlag(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
)

,布局以及主题也无需设置

fitsytemWindow="true"

让状态栏由你自己来托管。

缺点

  • 全屏和非全屏,状态栏需要手动控制
  • 如果xml布局不规则,需要手动修改的地方多

优点

  • 简单粗暴
  • 对于结构好的项目,可以在BaseActivity下一并全部设置完成
http://www.lryc.cn/news/619513.html

相关文章:

  • [系统架构]信息安全技术基础知识(三)
  • VS2022 + Qt 5.15.2+Occ开发环境搭建流程
  • 在腾讯云CodeBuddy上实现一个AI聊天助手
  • 自动化测试框架:自愈脚本、智能用例生成智能缺陷检测:视觉验证、日志异常分析A/B测试优化:多臂老虎机算法、动态流量分配
  • C5.4:光电器件
  • Spring全流程源码-基于spring-boot-starter-parent 2.6.11
  • BM25:概率检索框架下的经典相关性评分算法
  • 二层业务端口相关配置
  • 【P21】OpenCV Python——RGB和BGR,HSV和HSL颜色空间,及VScode中报错问题解决
  • 【Java web】HTTP 与 Web 基础教程
  • 技术速递|使用 AI Toolkit 构建基于 gpt-oss-20b 的应用程序
  • Node.js面试题及详细答案120题(16-30) -- 核心模块篇
  • Docker部署 Neo4j 及集成 APOC 插件:安装与配置完整指南(docker-compose)
  • 数据挖掘常用公开数据集
  • spring gateway配合nacos实现负载均衡
  • 【HTML】在页面中画一条0.5px的线
  • 【Part 4 未来趋势与技术展望】第一节|技术上的抉择:三维实时渲染与VR全景视频的共生
  • SQL语句优化
  • JsonReader:Spring AI 的 JSON 搬运大师
  • html img标签设置默认图片,防止图片路径不存在导致图片不展示影响页面美观
  • 2022 年全国硕士研究生招生考试真题笔记
  • Nestjs框架: 由权限模型设计到 Prisma 数据库迁移的演示
  • ZED 2i相机调试
  • 【SpringBoot】12 核心功能-配置文件详解:Properties与YAML配置文件
  • 肖臻《区块链技术与应用》第十一讲:比特币核心概念重温:一文读懂私钥、交易、挖矿与网络现状
  • 模型驱动的自动驾驶AI系统全生命周期安全保障
  • Easysearch 数据迁移之 INFINI Gateway
  • elasticsearch mapping和template解析(自动分词)!
  • LeetCode 刷题【40. 组合总和 II】
  • Linux系统编程Day13 -- 程序地址空间(进阶)