美文网首页
【原创】基于主题规范写法修改actionBar高度写法和标题字体

【原创】基于主题规范写法修改actionBar高度写法和标题字体

作者: 吉凶以情迁 | 来源:发表于2022-06-16 17:03 被阅读0次

首先看图


image.png

可以看出来就是 当前主题 选择的手机是56dp
actionBarSize,
规范是啥,规范就是使用appcompat主题 material design咯

我的各种颜色主题都继承于我的根主题


    <style name="Theme.MyApplication" parent="Theme.MyApplication.RootTheme">

所以只需要修改根主题属性即可实现

    <style name="Theme.MyApplication.RootTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <item name="actionBarStyle" >@style/MyActionBarStyle</item>
        <item name="actionBarSize">@dimen/my_app_action_bar_size</item>

全局赋值默认属性修改actionBar高度

actionBarSize 设置了之后就会替换掉所有?attr/actionBarSize

  1. 替换主题的
   <style name="Theme.MyApplication.RootTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
       <item name="actionBarSize">@dimen/my_app_action_bar_size</item>

  1. 替换解决toolbar的
    直接写上 ?attr/actionBarSize就行

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolBar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            style="@style/ToolbarStyle"
            app:layout_scrollFlags="scroll|enterAlways"
            app:title="@string/app_name"
            app:titleTextColor="@android:color/white" />

修改toolbar标题字体大小

  1. 主题全局替换
    此方法针对没有在xml中定义toolbar或者setSupportToolbar的情况
    <!-- ActionBar 样式 -->
    <style name="MyActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="titleTextStyle">@style/MyTitleTextStyle</item>
    </style>
    <style name="MyActionBarTabText" parent="@style/Widget.AppCompat.ActionBar.TabText">
        <item name="android:textColor">@android:color/holo_blue_bright</item>
        <item name="android:textSize">@dimen/toolbar_text_size</item>
    </style>
    <style name="Theme.MyApplication.RootTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <item name="actionBarStyle" >@style/MyActionBarStyle</item>
    </style>
  1. 解决xml中声明的toolbar问题

用xml写的toolbar发现字体大小并没有生效,这时候需要用到style="@style/ToolbarStyle"->titleTextAppearance

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolBar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            style="@style/ToolbarStyle"
            app:layout_scrollFlags="scroll|enterAlways"
            app:title="@string/app_name"

 />

    <style name="ToolbarStyle">

        <item name="android:background">?attr/defaultThemeColor</item>
        <item name="titleTextAppearance">@style/MyActionBarTabText</item>

    </style>

为什么是titleTextAppearance从源码分析可得知,

image.png image.png

readTextAppearance方法中

image.png
解析了textsize
              case com.android.internal.R.styleable.TextAppearance_textSize:
                    attributes.mTextSize =

相关文章

  • 【原创】基于主题规范写法修改actionBar高度写法和标题字体

    首先看图 可以看出来就是 当前主题 选择的手机是56dpactionBarSize,规范是啥,规范就是使用appc...

  • 2018-07-16 MarkDown语法

    1.标题写法 #= ##= 以此类推 分割线


    *** 字体 字体加粗**字体**字体斜体***字体***字...

  • MarkDown全面讲解

    1.快捷键 2. 基本语法 2.1 字体设置斜体、粗体、删除线 2.2 分级标题 1、 写法一 2、写法二 2.3...

  • webpack

    模块化: 命名冲突 文件依赖 模块化编程: 函数写法 对象写法 立即执行函数写法 CommonJS规范AMD规范 ...

  • swift基础-集合类型

    一、数组 *写法Array SomeType[] *访问和修改数组 二、字典 *写法Dictionary

  • 为简书Markdown文字添加颜色

    添加红色显示红色字体 效果 写法: $\color{red}{red}$ 添加绿色 效果 写法: $\color{...

  • 问题型调研报告写法

    标题可以有两种写法,一种是规范化的标题格式,即发文主题+文种,基本格式为某某单位关于某某的调研报告,关于某某的调研...

  • 简书第一天

    标题的写法是#加空格 引用的写法:》加空格 强调的写法:“xxx” 图片的写法:!中括号加大括号

  • 关于forEach(item =>{})

    '=>'es6写法,不兼容ie11 修改:兼容写法

  • 单例写法

    1.基于线程安全的单例写法 2.基于加锁的单例写法

网友评论

      本文标题:【原创】基于主题规范写法修改actionBar高度写法和标题字体

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