Android视角看鸿蒙第六课(module.json5中的各字段含义之pages)designWidth的用法

news2024/9/20 12:40:28

Android视角看鸿蒙第六课(module.json5中的各字段含义之pages)

导读

前面几篇文章,我们陆续分析了entry->src->main下的module.json5中的各个字段的含义及作用。目前剩余pages和abilities两个字段,本篇文章一起来了解pages。
过程有错误,一定要看到最后

pages

官方文档

在这里插入图片描述
在这里插入图片描述

字段定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到pages的值是String,通过正则要求值的格式必须是
$profile: 开始的,作用是定义了所有page的路径

需要注意的是官方文档中说明除默认存在的src外,还可以存在window标签(可缺省),缺省状态下designWidth默认为720,目测类似于autosize.

思考

1、page的路径仅仅是说明,还是必须声明?
2、window下的designWidth的作用
3、autoDesignWidth的作用

尝试

1、page的路径仅仅是说明,还是必须声明?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
EntryAbility目前是程序的入口,EntryAbility加载了pages/Index, pages/Index在main_pages.json中的src下存在。
现在把main_pages.json中的pages/Index注释看看会发生什么。
在这里插入图片描述
报错了,json不允许注释
直接删除
在这里插入图片描述
ok,有警告但不报错。
运行看看效果.
在这里插入图片描述
日志显示的是成功的,但是界面无内容.
在这里插入图片描述
改回来,再上个正常的
在这里插入图片描述

结论

被调用的page必须在pages所配置的profile中声明,未声明时不会报错,不影响运行,不会闪退但加载不出内容且
在这里插入图片描述

1.1 重复声明会如何

突发奇想,不声明不行,那么如果声明了两个会如何
在这里插入图片描述
有警告,运行看看
在这里插入图片描述
ok,没有什么问题

结论

重复声明会有警告,建议删除重复项,虽然不影响运行

2、window下的designWidth的作用

默认是没有这个值的,我们先手写一个这个字段,看看字段描述
在这里插入图片描述
Defines window-related configurations. This attribute is not supported by devices running the OHOS.
定义窗口属性,但OHOS不支持。
在这里插入图片描述
看看其他同学对于OHOS的描述,简单来说就是和鸿蒙OS不是一回事。 先不管他。

根据这个我们定义了一个designWidth,和缺省值一致,为720
在这里插入图片描述
同时,也看下designWidth的字段描述
在这里插入图片描述
Indicates the baseline width for page design, in pixels. The size of an element is scaled by the actual device width. This label is an integer.
指示页面设计的基线宽度(以像素为单位)。元素的大小按实际设备宽度进行缩放。此标签是一个整数。

为了更好的看出效果,我们修改一下page/index中的宽度和背景色
在这里插入图片描述
看效果
在这里插入图片描述

虚拟机效果不太对,理论上应该正好全屏,看看真机。

真机效果一致,这是什么原因呢?

继续修改designWidth的值,为72,相比之前缩小10倍,视图应该放大10倍才对
在这里插入图片描述
看看效果
无任何变化-_
郁闷了

结论

并无任何影响,可能我的方向是错误的,想参考一下其他同学的帖子,也未能发现有效的资料。有其他想法的同学欢迎反馈吧。

3、autoDesignWidth的作用

看一下autoDesignWidth的值

在这里插入图片描述

在这里插入图片描述
按照文档说明,当autoDesignWidth=true时,designWidth设置的值会被忽略,将会自动计算的得出。
看看效果
在这里插入图片描述
依然一致,无任何变化
在这里插入图片描述
研究了半天,在这个目录下看到了window的更多说明,疑似专用于类web开发范式
基于类web开发范式,我找到了这个
在这里插入图片描述
Stage模型下的应用或服务的页面仅支持声明式开发范式(推荐),Stage模型下的卡片支持声明式和类web两种开发范式。

上个官方链接

结论(错误的)

在Stage模型下,确定window下的designWidth及autoDesignWidth字段,无任何作用。

修正

发布之后其实我是很放心的,所以我去研究UI了,我很好奇,
我们在上述篇幅中修改的
width(720)
中的720是什么单位,如何保证屏幕兼容的。
我去看文档,无意中看到了这个
在这里插入图片描述

我门上述的720,默认使用的vp,等同于Android中的dp
而lpx是和designwidth有关系的

下图是designWidth和lpx的使用方式
在这里插入图片描述

在这里插入图片描述

结论

designWidth类似于autosize,可以等比例还原设计图,但是组件的width默认输入number是Vp单位的,等同于DP,不受designWidth影响,必须通过==width(px2vp(lpx2px(70)))==将lpx转换为px,暂未发现lpx直接转vp的办法。
所以designWidth和autoDesignWidth都是有效的,只是需要配合**px2vp(lpx2px(70)**使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何查看MySQL数据库的连接数

连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW PROCESSLIST命令输出数据库中运行着的线程个数的详情,如图6-1-1所示。 SHOW PROCESSLIST默认情况下只显示前100条记录的详情,如果需要显示超过100条的所有记录,可以…

login登录界面

展示情况 代码&#xff1a; <template><div class"wrapper"><div style"margin: 200px auto; background-color: #fff; width: 350px; height: 300px; padding: 20px; border-radius: 10px"> <div style"margin: 20px 0; text…

VMware学习安装(虚拟化软件)

一、上官网下载安装包&#xff0c;双击打开&#xff08;稍微等待解压过程&#xff09;出现以下界面。 二、点击下一步出现以下界面&#xff0c;进行许可协议的勾选并进行下一步。 三、建议不要安装在C盘&#xff0c;选择一个较大的空间&#xff0c;以下两个选项都勾选上&#…

C语言自定义库

编写 xx.c 和xx.h文件\将源代码编译为目标文件 gcc -c add.c sub.c 执行完毕后会生产add.o和sub.o文件静态库创建使用ar命令&#xff1b; ar -r libmymath.a add.o sub.o将库和main.c文件一起编译 gcc -o main main.c -lmymath -L./ 注意 上述书写格式不要错乱 -L 是指定文件路…

CentOS7使用Docker部署.net Webapi

1 准备WebApi项目 对于已存在的WebApi项目&#xff0c;需要添加Docker支持&#xff1b; 编码时&#xff0c;先设置好项目需要的端口号&#xff1a;program.cs中&#xff0c;app.Run("http://*:8000");设置端口为&#xff1a;8000在VS中&#xff0c;选中项目&#xf…

[精选]通义灵码做活动,送挺多礼品,快来薅羊毛!!!

你的编辑器装上智能ai编辑了吗&#xff0c;的确挺好用的。 最近阿里云AI编码搞活动&#xff0c;可以免费体验并且还可以抽盲盒。有日历、马克杯、代金券、等等其他数码产品。 大多数都是日历。 点击链接参与「通义灵码 体验 AI 编码&#xff0c;开 AI 盲盒」 https://develope…

基于Django兴趣趣班预约管理系统

技术&#xff1a;pythonmysqlvue 一、系统背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的大…

代码随想录算法训练营第二十八天 | 93.复原IP地址,78.子集, 90.子集II

这道题和选取回文子串的题目类似&#xff0c;就是一个子集划分的问题&#xff0c;但是子集划分是有终止条件的&#xff0c;也就是这个划分并不是把所有的划分可能都塞进结果集了。当划分到达最后一个位置的时候&#xff0c;划分结束&#xff0c;不包含最后一个划分位置的子集划…

为企业插上“翅膀”,看长沙如何助推民营企业上市!

在讨论城市经济发展水平时&#xff0c;上市公司数量经常被作为关键指标&#xff0c;是一座城市的“财富”。它不仅代表城市繁荣程度&#xff0c;也有利于人口安居乐业。所以&#xff0c;虽然各地政府的发展目标中&#xff0c;少不了培育上市公司这一条。 但是&#xff0c;从市…

Gitlab-runner注册与配置

文章目录 概要操作流程获取HTTPS证书上传证书修改gitlab-runner dns配置文件gitlab-runner 注册 概要 本文主要介绍了Gitlab-runner在内网环境注册到gitlab的操作方式。内网环境如下&#xff1a; 1、gitlab-runner由docker镜像部署&#xff1b; 2、gitlab部署与内网&#xff0…

WordPress自动生成原创文章插件

WordPress作为最受欢迎的内容管理系统之一&#xff0c;为博客和网站的搭建提供了便捷的解决方案。而在内容创作方面&#xff0c;自动生成原创文章的插件为WordPress用户提供了更为高效的选项。 什么是WordPress自动生成原创文章插件&#xff1f; WordPress自动生成原创文章插件…

分类预测 | Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别

分类预测 | Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别 目录 分类预测 | Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别。 2.自…

[论文笔记] Gradient Surgery for Multi-Task Learning

【强化学习 137】PCGrad - 知乎 多任务学习(multi task):任务权重、loss均衡、梯度下降那点事 - 知乎 ICLR 2020 rejected submission:Yu T, Kumar S, Gupta A, et al. Gradient surgery for multi-task learning[J]. arXiv preprint arXiv:2001.06782, 2020. mul…

mysql虚拟列Generated Column

目录​​​​​​​ 1、Generated Column简介 生成的列定义具有以下语法&#xff1a; 2、实践 2.1 存储格式为json字段增加索引 2.2 手机号后四位 3、虚拟列索引介绍 3.1 虚拟列索引的限制 3.1.1 Virtal Generated Column 4、阿里云数据库环境是否支持 下期扩展&…

【数据结构和算法初阶(C语言)】二叉树的顺序结构--堆的实现/堆排序/topk问题详解---二叉树学习日记②

目录 ​编辑 1.二叉树的顺序结构及实现 1.1 二叉树的顺序结构 2 堆的概念及结构 3 堆的实现 3.1堆的代码定义 3.2堆插入数据 3.3打印堆数据 3.4堆的数据的删除 3.5获取根部数据 3.6判断堆是否为空 3.7 堆的销毁 4.建堆以及堆排序 4.1 升序建大堆&#xff0c;降序建小堆 4.2堆…

python自定义日历库,与对应calendar库函数功能基本一致

目录 自定义日历库 常用列表 日期列表 常用函数 闰年判断 月份天数 元旦序号 日历表头 星期序号 序号及天数 月历字串 打印月历 年历字串 打印年历 对比测试 测试结果 完整代码 运行结果 自定义日历库 自定义日历库函数&#xff0c;并使得其与python calend…

学习笔记 | 微信小程序项目day03

今日学习内容 配置自定义导航栏通用轮播组件通用的轮播图组件完善以及主页调用分类面板以及热门推荐面板猜你喜欢模块&#xff08;分页查询&#xff09;首页下拉刷新首页骨架屏 配置自定义导航栏 1、创建自定义组件 /index/components/CustomNavbar.vue <script setup l…

安捷伦agilent dso9254a示波器

181/2461/8938产品概述&#xff1a; 安捷伦DSO9254A示波器配有15英寸XGA显示器&#xff0c;封装厚度仅为9英寸&#xff08;23厘米&#xff09;&#xff0c;重量仅为26磅&#xff08;11.8千克&#xff09;&#xff0c;以节省您有限的工作台空间。该范围旨在为您提供最广泛的测量…

酷开科技与您共筑希望,酷开系统助力孩子成长启航

​父母是孩子的第一任老师&#xff0c;家庭是孩子的第一所学校。良好的家庭教育&#xff0c;对于孩子人格的形成以及终身教育有着不可估量的作用。每一个优秀孩子的背后&#xff0c;都有一个优秀的家庭。那么怎么才能让孩子健康快乐的接受知识呢&#xff1f;酷开系统中为孩子打…

文件的创建与删除

文件的创建 使用File类创建一个文件对象&#xff0c;例如&#xff1a;File filenew File("c:\\myletter" , "letter.txt"); public boolean createNewFile();/*如果c:\myletter目录中没 有名字为letter.txt文件&#xff0c;文件对象file调用createNewFil…