HarmonyOS NEXT开发-ArkUI八

简介: 本文介绍了Harmony OS开发中的线性布局技巧,包括交叉轴对齐、自适应缩放及综合实践案例,帮助开发者轻松掌握相关技能。每天学习一个知识点,一起加油!

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前!


1.线性布局-交叉轴对齐

image.png

交叉轴对其,以 Row 为例,主轴在水平方向,交叉轴在垂直方向
属性:alignItems()
参数:枚举类型VerticalAlign
注意:布局容器在交叉轴要有足够空间,否则无法生效


@Entry
@Component
struct Index{
  build() {
    Column(){
      Row() {
        Text('可以关注我')
          .height(40).fontSize(20).margin({right:5})
          .backgroundColor(Color.Pink)
        Text('可以评论哈')
          .height(40).fontSize(20).margin({right:5})
          .backgroundColor(Color.Orange)
        Text('可以点赞收藏')
          .height(40).fontSize(20)
          .backgroundColor(Color.Brown)
      }
      .width('100%')
      .height(80)
      .backgroundColor(Color.Gray)
      // 顶部对齐
      .alignItems(VerticalAlign.Top)
      .margin({bottom:10})
      Row() {
        Text('可以关注我')
          .height(40).fontSize(20).margin({right:5})
          .backgroundColor(Color.Pink)
        Text('可以评论哈')
          .height(40).fontSize(20).margin({right:5})
          .backgroundColor(Color.Orange)
        Text('可以点赞收藏')
          .height(40).fontSize(20)
          .backgroundColor(Color.Brown)
      }
      .width('100%')
      .height(80)
      .backgroundColor(Color.Gray)
      // 底部对齐
      .alignItems(VerticalAlign.Bottom)
      .margin({bottom:10})
    }.width("100%")

  }
}
AI 代码解读

3.自适应缩放

父容器尺寸确定时,设置了 layoutWeight 属性的子元素与兄弟元素占主轴尺寸按照权重进行分配。

属性:layoutWeight()

参数:数字

    // 主轴方向:水平方向
      Row() {
        Text('左侧')
          .width(60)
          .height(30)
          .backgroundColor('#ccc')
        Text('中间')
          .height(30)
          .backgroundColor(Color.Pink)
          .layoutWeight(1)
        Text('右侧 layoutWeight')
          .height(30)
          .backgroundColor('#fc0')
          .layoutWeight(1)
      }.margin({bottom:10})
AI 代码解读

3.综合实践-用户关注

Row() {
        Image($r('app.media.startIcon'))
          .width(30)
          .margin({right: 5})
          .borderRadius(15)
        Text('程序员Feri')
          .fontSize(15)
          .fontWeight(700)
          .layoutWeight(1)
        Text('关注')
          .width(50)
          .height(25)
          .border({width: 1, color: '#999'})
          .borderRadius(3)
          .fontSize(12)
          .textAlign(TextAlign.Center)
          .fontColor('#999')
      }
      .width('96%')
      .height(50)
      .padding(10)
      .margin({top: 20})
      .borderRadius(5)
      .borderWidth(1).borderColor("#999")
AI 代码解读

4 综合实战-头条新闻

 Column() {
        Row({space: 10}) {
          // 左侧
          Column() {
            Text('省电子院成功加入全国数标委WG2数据治理标准工作组')
              .fontSize(14)
              .fontColor('#444')
            Row() {
              Text('九派快讯 昨天04:28')
                .fontSize(12)
                .fontColor('#999')
                .layoutWeight(1)
              Image($r("app.media.gb"))
                .width(14)
                .fillColor('#999')
            }
            .width('100%')
            // .justifyContent(FlexAlign.SpaceBetween)
          }
          .height('100%')
          .layoutWeight(1)
          // 水平左对齐 -- 交叉轴
          .alignItems(HorizontalAlign.Start)
          // 垂直两端对齐 -- 主轴
          .justifyContent(FlexAlign.SpaceBetween)
          // 右侧
          Image($r('app.media.xw'))
            .width(100)
        }
        .width('100%')
        .height(80)
        .padding(5)
        .margin({top: 20})
AI 代码解读

好啦,线性布局,你会了吗?每天坚持学习一个知识点!加油,关注我,轻松拿捏Harmony OS开发!

目录
打赏
0
0
0
0
50
分享
相关文章
一年撸完百万行代码,企业微信的全新鸿蒙NEXT客户端架构演进之路
本文将要分享的是企业微信的鸿蒙Next客户端架构的演进过程,面对代码移植和API不稳定的挑战,提出了DataList框架解决方案。通过结构化、动态和认知三重熵减机制,将业务逻辑与UI解耦,实现数据驱动开发。采用MVDM分层架构(业务实体层、逻辑层、UI数据层、表示层),屏蔽系统差异,确保业务代码稳定。
22 0
鸿蒙NEXT开发App相关工具类(ArkTs)
这段代码展示了一个名为鸿蒙NEXT开发 `AppUtil` 的工具类,主要用于管理鸿蒙应用的上下文、窗口、状态栏、导航栏等配置。它提供了多种功能,例如设置灰阶模式、颜色模式、字体类型、屏幕亮度、窗口属性等,并支持获取应用包信息(如版本号、包名等)。该工具类需在 UIAbility 的 `onWindowStageCreate` 方法中初始化,以便缓存全局变量。代码由鸿蒙布道师编写,适用于鸿蒙系统应用开发,帮助开发者更便捷地管理和配置应用界面及系统属性。
|
7天前
|
鸿蒙NEXT如何保证应用安全:详解鸿蒙NEXT数字签名和证书机制
本文对鸿蒙NEXT公开资料进行了深入分析和解读,梳理了鸿蒙单框架应用的签名机制,拆解每一步的实操过程和背后的实现原理,并对源码分析整理签名的校验机制。从中管中窥豹,探究鸿蒙系统的安全设计思路,给从事鸿蒙研发的同学提供一些借鉴。
63 3
鸿蒙开发难题多到崩溃?然而 10 亿终端暗藏财富密码-卓伊凡
鸿蒙开发难题多到崩溃?然而 10 亿终端暗藏财富密码-卓伊凡
41 5
鸿蒙开发难题多到崩溃?然而 10 亿终端暗藏财富密码-卓伊凡
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
153 92
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
55 23
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
47 14
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
40 11
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
鸿蒙开发:使用Ellipse绘制椭圆
除了使用Ellipse组件可以一个椭圆之外,我们还可以使用Canvas来绘制一个椭圆,但是相对来说,还是没有Ellipse组件高效,所以,如果说Ellipse组件能够满足需求,还是以Ellipse组件为主。
鸿蒙开发:使用Ellipse绘制椭圆
鸿蒙开发:使用Circle绘制圆形
绘制矩形也好,圆形也好,大家做为一个了解即可,在有需要用到的场景中,合理的使用即可,毕竟现成的组件,要比自己用别的方式实现要简单的多。
鸿蒙开发:使用Circle绘制圆形

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等