我是靠谱客的博主 迅速便当,最近开发中收集的这篇文章主要介绍Android 12 MTK SystemUI 定制化开发系列(3) 之 status_bar.xml详解文章目录前言一、status_bar.xml  路径二、status_bar.xml 布局详解总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 前言
  • 一、status_bar.xml 路径
  • 二、status_bar.xml 布局详解
  • 总结


前言

把 status_bar.xml  单独用一期详解下, 这个布局嵌套很深,网上基本找不到详解这个布局的, 但这个布局 个人觉得很重要,对小白很有帮助或维护SystemUI的同僚多少都会有点帮助吧!


一、status_bar.xml  路径

vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/status_bar.xml

二、status_bar.xml 布局详解

 

<com.android.systemui.statusbar.phone.PhoneStatusBarView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
android:id="@+id/status_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/status_bar_height"
android:accessibilityPaneTitle="@string/status_bar"
android:descendantFocusability="afterDescendants"
android:focusable="false"
android:orientation="vertical">
<!-- 如果存在活跃通知并且Flag为STEM_UI_FLAG_LOW_PROFILE情况下
会显示一个点,全屏提示当前存在的通知-->
<ImageView
android:id="@+id/notification_lights_out"
android:layout_width="@dimen/status_bar_icon_size"
android:layout_height="match_parent"
android:paddingStart="@dimen/status_bar_padding_start"
android:paddingBottom="2dip"
android:scaleType="center"
android:src="@drawable/ic_sysbar_lights_out_dot_small"
android:visibility="gone" />
<LinearLayout
android:id="@+id/status_bar_contents"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingStart="@dimen/status_bar_padding_start"
android:paddingTop="@dimen/status_bar_padding_top"
android:paddingEnd="@dimen/status_bar_padding_end">
<FrameLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
<!-- 悬浮式通知 -->
<include layout="@layout/heads_up_status_bar_layout" />
<!-- 左侧的alpha由PhoneStatusBarTransitions控制,各个视图由StatusBarManager禁用标志disable_CLOCK
和分别为DISABLE_NOTIFICATION_ICONS -->
<LinearLayout
android:id="@+id/status_bar_left_side"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false">
<!-- 状态栏显示运营商信息,需设置 config_showOperatorNameInStatusBar为true
-->
<ViewStub
android:id="@+id/operator_name"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout="@layout/operator_name" />
<!-- 时钟图标 -->
<com.android.systemui.statusbar.policy.Clock
android:id="@+id/clock"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical|start"
android:paddingStart="@dimen/status_bar_left_clock_starting_padding"
android:paddingEnd="@dimen/status_bar_left_clock_end_padding"
android:singleLine="true"
android:textAppearance="@style/TextAppearance.StatusBar.Clock" />
<!-- 录音机图标 -->
<include layout="@layout/ongoing_call_chip" />
<!-- 通知图标区域 -->
<com.android.systemui.statusbar.AlphaOptimizedFrameLayout
android:id="@+id/notification_icon_area"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clipChildren="false"
android:orientation="horizontal" />
</LinearLayout>
</FrameLayout>
<!-- 如果是刘海屏,会在updateLayoutForCutout方法里设置区域范围-->
<android.widget.Space
android:id="@+id/cutout_space_view"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center_horizontal|center_vertical" />
<com.android.systemui.statusbar.AlphaOptimizedFrameLayout
android:id="@+id/centered_icon_area"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:clipChildren="false"
android:gravity="center_horizontal|center_vertical"
android:orientation="horizontal" />
<!-- 系统图标区域,主要包含了system_icon.xml 注:状态跟锁屏都是复用此布局-->
<com.android.keyguard.AlphaOptimizedLinearLayout
android:id="@+id/system_icon_area"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical|end"
android:orientation="horizontal">
<include layout="@layout/system_icons" />
</com.android.keyguard.AlphaOptimizedLinearLayout>
</LinearLayout>
<!-- 显示界面信息 -->
<ViewStub
android:id="@+id/emergency_cryptkeeper_text"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout="@layout/emergency_cryptkeeper_text" />
</com.android.systemui.statusbar.phone.PhoneStatusBarView>

总结

关键的布局都标注了,方便大家初步了解这个布局结构!

最后

以上就是迅速便当为你收集整理的Android 12 MTK SystemUI 定制化开发系列(3) 之 status_bar.xml详解文章目录前言一、status_bar.xml  路径二、status_bar.xml 布局详解总结的全部内容,希望文章能够帮你解决Android 12 MTK SystemUI 定制化开发系列(3) 之 status_bar.xml详解文章目录前言一、status_bar.xml  路径二、status_bar.xml 布局详解总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部