关于uviewui中设置uni.$u.setConfig后生效

本文解决需求:app中增加设置字体大小的选项,

由于官方中并没有将 uni.$u.setConfig 更改为动态的(*至少在目前使用的 2.0.27 版本中没有 因为项目已经开发到后期了 不方便直接升级ui的版本 怕出问题所以就在原来的基础上打补丁 *) 所以会出现设置了之后 页面并没有任何变化

所以得需要重新刷新一下 相关代码如下:
在main.js中:

import uView from "uview-ui";
Vue.use(uView);
// 如此配置即可
// uni.$u.config.unit = 'rpx'
const fontSize = uni.getStorageSync("fontSize") || 24; // 设置的字体大小 全局可用
const isReLaunch = uni.getStorageSync("isReLaunch"); // 这段用于判断是不是需要页面热启动后跳转回设置页面。
if (isReLaunch) {
  uni.setStorageSync("isReLaunch", false);
  setTimeout(() => {
    uni.reLaunch({
      url: "/pages/profile/index",
    });
  }, 1000);
}
// 需要在Vue.use(uView)之后执行
uni.$u.setConfig({
  // 修改$u.config对象的属性
  config: {
    // 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx'
    unit: "rpx",
  },
  // 修改$u.props对象的属性
  props: {
    // 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30
    text: {
      size: fontSize,
    },
    avatar: {
      size: 80,
      fontSize: 30,
    },
    icon: {
      size: 40,
    },
    checkbox: {
      size: fontSize + 6,
      labelSize: fontSize,
    },
    radio: {
      size: fontSize + 2,
      labelSize: fontSize,
    },
    input: {
      size: fontSize,
      fontSize: fontSize - 2,
    },
    textarea: {
      size: fontSize,
      fontSize: fontSize,
    },
    tabbar: {
      size: fontSize,
      labelSize: fontSize,
    },
    empty: {
      textSize: fontSize,
    },
  },
});

在设置字体大小页面中

uni.setStorageSync("fontSize", this.fontSize); // 修改的全局字体大小
uni.setStorageSync("isReLaunch", true); // 是否跳转回当前页面
// #ifdef APP-PLUS
plus.runtime.restart(); // 进行app热重启
// #endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值