当前位置: 首页 > 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.dtcms.com/a/328867.html

相关文章:

  • 双屏加固笔记本电脑C156-2:坚固与高效的完美融合
  • FPGA+护理:跨学科发展的探索(四)
  • 在CentOS 7上配置Android USB网络共享方式的方法
  • MacOS字体看起来比在 Windows 上更好?
  • HTTPS与CA证书:安全通信全解析
  • CA+https+动态WEB页面部署
  • JavaWeb核心:HttpServletRequest与HttpServletResponse详解
  • Linux 服务部署:自签 CA 证书构建 HTTPS 及动态 Web 集成
  • OpenBMC中观察者模式架构与实现全解析
  • http与https协议区别;vue3本地连接https地址接口报500
  • 解惑rust中的 Send/Sync(译)
  • 什么是费曼学习法?
  • 机器学习-Cluster
  • Jenkins一直无法启动,怎么办?
  • C# winform 调用 OPC UA C# WinForm 的批量订阅方法
  • Java19 Integer 位操作精解:compress与expand《Hacker‘s Delight》(第二版,7.4节)
  • 向长波红外成像图注入非均匀噪声
  • 【嵌入式电机控制#31】FOC:霍尔安装误差的补偿
  • Unity:GUI笔记(二)——工具栏和选择网格、滚动列表和分组、窗口、自定义皮肤样式、自动布局
  • Linux系统有何特点?linux系统组成如何?
  • NTUSER.DAT是什么文件
  • 华为云之Redis部署及基础语法
  • 遨游通讯推出两款三防平板,满足“危急特”场景定制化需求
  • 《AVL树的原理与C++实现:详解平衡二叉搜索树的高效构建与操作》
  • ACL 可以限制哪些流量?入方向和出方向怎么判断?
  • 高级IO(五种IO模型介绍)
  • wordpress不同页面调用不同keywords和description
  • STM32CubeMX + HAL 库:用FSMC接口与IS62WV51216芯片实现stm32外部SRAM扩展
  • csp知识基础——贪心算法
  • Java协程深度教程:从概念到Spring Boot实战