HarmonyOS NEXT - 通用属性

尺寸设置

.width(value: Length)	//设置组件宽度
.height(value: Length)	//设置组件高度
.size(value: SizeOptions)	//设置组件宽高尺寸
.padding(value: Padding | Length | LocalizedPadding)	//设置内边距
.margin(value: Margin | Length | LocalizedMargin)	//设置外边距

位置设置

.align(value: Alignment)	 //设置容器元素绘制区域内的子元素的对齐方式
.direction(value: Direction)  //设置容器元素内主轴方向上的布局。
.position(value: Position | Edges | LocalizedEdges)  //绝对定位,确定子组件相对父组件的位置
.markAnchor(value: Position | LocalizedPosition)  //设置元素在位置定位时的锚点。
.offset(value: Position | Edges | LocalizedEdges)  //相对偏移,组件相对原本的布局位置进行偏移。
alignRules(alignRule: LocalizedAlignRuleOptions)  //指定设置在相对容器中子组件的对齐规则,仅当父容器为RelativeContainer时生效。该方法水平方向上以start和end分别替代原方法的left和right,以便在RTL模式下能镜像显示,建议使用该方法指定设置在相对容器中子组件的对齐规则。

布局约束

.aspectRatio(value: number)  //指定当前组件的宽高比,aspectRatio=width/height。
.displayPriority(value: number)  //设置当前组件在布局容器中显示的优先级。

Flex布局

.flexBasis(value: number | string)  //设置组件的基准尺寸。
.flexGrow(value: number)  //设置组件在父容器的剩余空间所占比例。
.flexShrink(value: number)  //设置父容器压缩尺寸分配给此属性所在组件的比例。当父容器为Column、Row时,需设置主轴方向的尺寸。
.alignSelf(value: ItemAlign)  //子组件在父容器交叉轴的对齐格式。

边框设置

.border(value: BorderOptions)	//设置边框样式
.borderStyle(value: BorderStyle | EdgeStyles)	//设置元素的边框线条样式
.borderWidth(value: Length | EdgeWidths | LocalizedEdgeWidths)	//设置边框的宽度
.borderColor(value: ResourceColor | EdgeColors | LocalizedEdgeColors)	//设置边框的颜色
.borderRadius(value: Length | BorderRadiuses | LocalizedBorderRadiuses)	 //设置边框的圆角

背景设置

.backgroundColor(value: ResourceColor)	//设置组件背景色
.backgroundImage(src: ResourceStr | PixelMap, repeat?: ImageRepeat)	//设置组件的背景图片
.backgroundImageSize(value: SizeOptions | ImageSize)	//设置组件背景图片的宽高
.backgroundImagePosition(value: Position | Alignment)	//设置背景图的位置
.backgroundBlurStyle(value: BlurStyle, options?: BackgroundBlurStyleOptions)  //为当前组件提供一种在背景和内容之间的模糊能力,通过枚举值的方式封装了不同的模糊半径、蒙版颜色、蒙版透明度、饱和度、亮度。
.backdropBlur(value: number, options?: BlurOptions)  //为组件添加背景模糊效果,可以自定设置模糊半径和灰阶参数。
.backgroundEffect(options: BackgroundEffectOptions)  //设置组件背景属性,包含背景模糊半径,亮度,饱和度,颜色等参数。
.backgroundImageResizable(value: ResizableOptions)  //设置背景图在拉伸时可调整大小的图像选项。

图像效果

.blur(value: number, options?: BlurOptions)  //为组件添加内容模糊效果
.shadow(value: ShadowOptions | ShadowStyle)  //为组件添加阴影效果
.grayscale(value: number)  //为组件添加灰度效果。
.brightness(value: number)  //为组件添加高光效果。
.saturate(value: number)  //为组件添加饱和度效果。
.contrast(value: number)  //为组件添加对比度效果。
.invert(value: number | InvertOptions)  //反转输入的图像。
.sepia(value: number)  //将图像转换为深褐色。
.hueRotate(value: number | string)  //色相旋转效果。
.colorBlend(value: Color | string | Resource)  //为组件添加颜色叠加效果。
.linearGradientBlur(value: number, options: LinearGradientBlurOptions) //为组件添加内容线性渐变模糊效果。
.renderGroup(value: boolean)  //设置当前控件和子控件是否先整体离屏渲染绘制后再与父控件融合绘制。
.blendMode(value: BlendMode, type?: BlendApplyType)  //将当前控件的内容(包含子节点内容)与下方画布(可能为离屏画布)已有内容进行混合。

代码实例:UniversalAttributes

@Entry
@Component
struct UniversalAttributes {
  @State message: string = 'Universal Attributes ';

  build() {
    Column() {
      Text(this.message)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)

      Row(){
        Text('Size setting')
      }.backgroundColor(Color.Orange)
      .size({width:'100%',height:50})
      .width(50)
      .width(100) //The same attribute, the subsequent settings will overwrite the previous settings

      Row(){
        Text('Size setting')
      }.backgroundColor(Color.Green)
      .padding(10)
      .margin(10)

      Stack(){
        Text('Location setting')
      }.backgroundColor(Color.Orange)
      .size({width:'100%',height:50})
      .align(Alignment.TopStart)

      Row(){
        Text('Border settings')
      }.backgroundColor(Color.Orange)
      .padding(10)
      .margin(10)
      .border({width:1,color:Color.Red,radius:8,style:BorderStyle.Dashed})
      .borderWidth(5)
      .borderColor(Color.Green)
      .borderRadius(18)
      .borderStyle(BorderStyle.Dotted)

      Row(){
        Text('Background setting')
      }.height(100)
      .backgroundColor(Color.Orange)
      .backgroundImage($r('app.media.startIcon'))
      // .backgroundImageSize({width:'100%',height:'100%'})
      .backgroundImagePosition(Alignment.Center)
    }
    .height('100%')
    .width('100%')
  }
}
全部评论

相关推荐

2021 年夏天,我拿到大学录取通知书,家里人高兴地宴请亲友,庆祝我考上了大学。那时候,可能他们都以为考上大学就意味着人生有了保障。​然而,四年后的我才发现,真正的挑战才刚刚开始。​2024 年,大三下学期,身边的同学有的准备考研,有的计划留学,还有的选择直接就业。我选择了直接就业,踏上了秋招的征程。​我精心准备了简历,刷了无数道算法题,学习了各种面试技巧,梳理了实习期间做的项目,自信满满地开始投递简历。​然而,现实给了我一记耳光:​投了上百家公司,大多数都没有回应;​收到的回复大多是 “感谢您的投递,但岗位不匹配”;​经历了多轮测评和笔试,但真正进入面试的机会少之又少。​那段时间,我每天都在焦虑中度过,甚至开始怀疑自己的能力。​幸运的是,凭借之前的实习经验,我在 9 月初拿到了滴滴的实习转正通知,也收到了百度校招的提前批 Offer。​虽然最终结果不错,但这一路走来真的不容易。​校招的压力,只有经历过的人才能体会。​有人早早拿到 Offer,有人投了上百家仍然没有回应。​有人在焦虑中失眠,有人在等待中迷茫。​有人背风点烟,有人开车看海,有人 offer 打牌,还有人焦虑到失眠…… 真的,每个人都有自己的故事。如果你也在经历秋招,或者已经走过了这条路,欢迎在评论区分享你的经历。你现在的状态如何?校招顺利吗?投了多少家公司?如果能回到刚上大学的那天,你最想对自己说什么?
点赞 评论 收藏
分享
本人是25届本科生,本科是理科专业,从24年初开始自学java,10月开始秋招,秋招0offer,25年春招终于收获一个offer,马上准备入职,一路上也经历了很多自我怀疑和想要放弃的心情,很多次想要放弃找工作,面试前想要取消,怀疑自己能力远远不够找到工作,想要去考研,状态也是起起落落,经常几天都没有动力做任何正事。回过头来看,校招求职路上几乎全是挫折和失败,但也只需要一次成功,一次offer就足够了。第一点是放大自己的欲望,坚定目标,如果一开始都抱着“试一试,找不到就考研”这样的心态,就相当于给自己找了退路,给自己放弃的理由。客观来说,一定是要做好找不到工作的备用方案的,但是这一定不能成为坚持专注的阻碍。放大欲望也就是说自己要有找工作的内驱力,要有一定要达成目标的欲望,可以是摆脱天坑专业的欲望,也可以是单纯对高工资的向往,再加上相信自己的努力一定有回报,才有努力的动力第二点其实是与上面所说的相反,降低预期,对于很多学生来说(包括我自己),在真正步入生活之前都高估了自己,低估了赚钱的难度。在求职的一开始需要坚定目标,但在后续的持久战中需要不断降低预期来适应现实。很多人一开始都有进大厂的目标,月入2w的目标,但求职路上不可避免的会意识到自己其实差得远,我在经历这个过程的时候一度怀疑过自己的努力毫无意义,无论怎么样都够不到大厂,正是这种时候需要做到降低预期,只有可实现的目标才有意义第三点是不要对比,其实也是降低预期的一种方法,网上充斥着让人焦虑的信息,看到同学们保研读研的时候我也想过自己找工作是不是真的完全做错了,无论是和网上还是现实中都不要去对比,刻意控制自己不去搜索让自己焦虑的信息也是一种方法,让自己沉浸在每天都要做的事情上面,不让自己闲下来,有值得忙碌的事情可以很大程度缓解焦虑作为被求职折磨过大半年的普通学生,希望这些经验能对你有帮助
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务