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

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

阅读 576
1 个回答

可以使用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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进