ArkTS及openHarmony

补充

padding:内边距,也就是盒子边和盒子内部的距离

margin:外边距,也就是盒子和盒子的距离

openHarmony应用开发及UI界面

常用布局

Row 水平线性布局核心代码

子控件会共享同一行,也就是都在同一行内

typescript 复制代码
@Preview
@Component
struct TestRow {
    build(){
        Row({space:20}){
       		Button("按钮1")
        	Button("按钮2")
        	Button("按钮3")
        	Button("按钮4")
        }
    }
}

Column垂直线性布局核心代码

子控件不在同一行内,各自一行

typescript 复制代码
@Preview
@Component
struct TestColumn {
    build(){
        Column({space:5}){
            Button("按钮1")
            Button("按钮2")
            Button("按钮3")
        }
    }
}

Stack层叠布局核心代码

typescript 复制代码
@Preview
@Component
struct TestStack {
    build(){
        Stack(){
            Row(){}.width("100%").height("40%").backgroundColor("red")
            Row(){}.width("100%").height("30%").backgroundColor("green")
            Row(){}.width("40%").height("20%").backgroundColor("blue")
        }
    }
}

Flex弹性布局

typescript 复制代码
@Preview
@Component
struct TestFlex {
    build() {
        Flex({
            direction:FlexDirection.Row, // 设置主轴方向,默认为Row
            justifyConntent: FlexAlign.SpaceBetween, // 设置主轴对齐方式
            alignItems: ItemAlign.Auto // 设置交叉轴的对齐方式
        }){
          Text("111").width("30%").height(30).backgroundColor("red")
          Text("111").width("30%").height(40).backgroundColor("pink")
          Text("111").width("30%").height(50).backgroundColor("gray")
        }
        .size({width:'100%',height:80})
        .padding(10)
        .backgroundColor("yellow")
    }
}

Grid网格布局

typescript 复制代码
@Preview
@Component
struct TestGrid {
	titles: string[]=['item1','item2','item3','item4','item5','item6','item7','item8','item9','item10','item11','item12','item13','item14','item15','item16']
    build(){
        Grid() {
            ForEach(this.titles,(item:string,index?:number)=>)
        }
    }
}

主轴方向设置

direction: FlexDirection.Row(默认值)

direction: FlexDirection.RowReverse

direction: FlexDirection.Colomn

direction: FlexDirection.ColomnReverse

主轴对齐设置

justifyContent: FlexAlign.SpaceBetween(默认值)

justifyContent: FlexAlign.SpaceAround

justifyContent: FlexAlign.Evenly

justifyContent: FlexAling.Start

justifyContent: FlexAlign.Center

justifyContent: FlexAlign.End

交叉轴对齐设置

alignItems: ItemAlign.Auto(默认值),等价于Start

alignItem: ItemAlign.Start顶部对齐

alignItem: ItemAlign.Center居中对齐

alignItem: ItemAlign.End底部对齐

alignItem: Stretch拉伸居中对齐

alignItem: Baseline文本中心对齐

常用组件
函数 组件名
Button() 按钮
Text() 文本控件
Toggle() 开关控件
Radio() 单选框
TextInput() 输入框
Image() 图片
Progress() 进度条
CustomDialog() 对话框
AlterDialog() 对话框
相关推荐
钛态1 小时前
Vite 中的 CSS 工程化:从 CSS Modules 到 UnoCSS 的渐进式迁移
前端·vue·react·web
Csvn3 小时前
原型链、this 与闭包内存:三座深水区一次打通(含内存泄漏排查实战)
前端·javascript
葡萄城技术团队4 小时前
如何通过 JSON 数据源 / Web API 快速构建轻量级报表(Report)?
前端·json·原型模式
浪兎兎4 小时前
【Java Web】Servlet + JSP 笔记
java·前端·servlet
Patrick_Wilson5 小时前
iOS Safari Clipboard API 权限弹窗问题
前端·ios·safari
OpenTiny社区5 小时前
Naive UI × GenUI SDK:自定义物料库搭建实战
前端·ai编程
kyriewen5 小时前
我拿 4 个真实前端任务试了 GLM-5.3 Flash:代码一遍跑通,账单 4 分钱
前端·程序员·ai编程
IT_陈寒5 小时前
Vue的响应式更新有时候真的不听话
前端·人工智能·后端
风骏时光牛马6 小时前
AI编程常见问题梳理与要点解析
前端
前端snow6 小时前
ai agent -- LCEL 汇总
前端