HarmonyOS 应用内调整全局字体大小

应用内调整全局字体大小,是否跟随系统字体大小。有没有相应的api,目前项目中需求是在应用内改变字体大小,但是需要重启应用,期望不需要重启应用也能实现字体大小的改变,目前提供的方法是需要每一个可改变的字体都用 @State去定义一个变量进行绑定, 该方法太繁琐且工作量大,不利于维护,期望有更方便快捷的方式可以实现需求

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

可以使用PersistentStorage持久化存储UI状态。

通过PersistentStorage将aFont持久化到本地,@StorageLink(‘aFont’) aFont 保证修改刷新,以及修改后持久化到本地,导航栈中已存在的也会刷新,关闭app重新打开也会保存。

//Index.ets
import { router } from '@kit.ArkUI'
PersistentStorage.persistProp('aFont', 20);
@Entry
@Component
struct Index {
  @StorageLink('aFont') aFont: number = 20

  build() {
    Row() {
      Column() {
        // 应用退出时会保存当前结果。重新启动后,会显示上一次的保存结果
        Text(`${this.aFont}`)
          .fontSize(this.aFont)
          .onClick(() => {
            this.aFont += 1;
          })
        Button('push')
          .onClick(() => {
            router.pushUrl({url:'pages/Page1'})
          })
      }
      .width('100%')
      .height('100%')
    }
  }
}

//Page1.ets

@Entry
@Component
struct Page1 {
  @StorageLink('aFont') aFont: number = 20

  build() {
    Row() {
      Column() {
        // 应用退出时会保存当前结果。重新启动后,会显示上一次的保存结果
        Text(`${this.aFont}`)
          .fontSize(this.aFont)
          .onClick(() => {
            this.aFont += 1;
          })
      }
      .width('100%')
      .height('100%')
    }
  }
}

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-persiststorage-V5#%E4%BB%8Eappstorage%E4%B8%AD%E8%AE%BF%E9%97%AEpersistentstorage%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E5%B1%9E%E6%80%A7

分享
微博
QQ
微信
回复
2天前
相关问题
应用字体大小设置调整
331浏览 • 1回复 待解决
全局设置字体大小方案咨询
449浏览 • 1回复 待解决
HarmonyOS List中字体大小全局修改
21浏览 • 1回复 待解决
HarmonyOS webview字体大小设置
87浏览 • 1回复 待解决
HarmonyOS 字体大小如何设置?
607浏览 • 1回复 待解决
HarmonyOS 应用字体大小怎么设置?
107浏览 • 1回复 待解决
HarmonyOS 应用字体大小调节
622浏览 • 1回复 待解决
HarmonyOS 怎么获取系统字体大小
561浏览 • 1回复 待解决
HarmonyOS 字体大小适配方案
762浏览 • 1回复 待解决
HarmonyOS RichText无法指定字体大小
29浏览 • 1回复 待解决
鸿蒙IndexBar如何设置字体大小
6929浏览 • 1回复 待解决
HarmonyOS 关于应用字体调整
45浏览 • 1回复 待解决
JS ui支持vp、字体大小支持fp了吗?
6221浏览 • 1回复 待解决
HarmonyOS 一行文案不同字体大小
79浏览 • 1回复 待解决