华为 ArkTS 边框怎么设置,单边边框怎么设置以及条件设置边框(鸿蒙开发)

文章讲述了如何在ArkTS中使用组件的border属性实现自定义边框效果,包括实例代码、遇到的需求问题,以及官方提供的线段和点线边框样式。作者探讨了如何处理重叠边框以达到理想效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人博客(vue3 + nodejs + mysql )icon-default.png?t=O83Ahttp://snows-l.site

一、实例代码:

        border(params)

        接收一个对象参数,对象参数的属性为width?: Lenght,color?:ResourceColor ,radius?: Length,style?: BorderStyle

        注意:以下实例包含了我说知道的 边框的单位 以及 颜色 的各种用法

Column() {
  Image(item.img)
    .width(120)
    .height(80)
    .objectFit(ImageFit.Contain)
  Text(item.title)
    .height(20)
    .margin({ top:10 })
}
  .width('50%')
  .padding({top:10, bottom:10})
  .border({
    width:{top:1, left:1, right:1, bottom:1},
    color:0xCCCCCC
  })

当然边框颜色也是可以独立设置的如:

.border({ 
    width: { left: '1px', right: '1px', top: '1px', bottom: '1px' }, 
    color: { left: '#e3bbbb', right: Color.Blue, top: Color.Red, bottom: Color.Green },
})
二、学习中遇到的问题以及需求 (内含更高阶的用法)
        1、需求

        需要给推荐商品列表添加边框, arkTS的边框跟前端css一样效果,如果出现重叠也会加粗,如下图

 可以明显看到中间重叠的边框比较粗,所以不能每个容器都加上四边的边框, 只能分比给每个加左边框,上边框, 然后第二列加右边框, 最后一行加下边框

2、整部分代码:重点看border
        // 推荐列表
        Row() {
          Flex({wrap: FlexWrap.Wrap}) {
            ForEach(this.utils, (item:ModuleItem, i) => {
              Column() {
                Image(item.img)
                  .width(120)
                  .height(80)
                  .objectFit(ImageFit.Contain)
                Row() {
                  Text(item.title + item.title)
                    .width('100%')
                }
                .height(20)
                .margin({ top:10 })

                Row() {
                  Text('价格:')
                  Text('$ 30')
                    .width('100%')
                    .fontColor(Color.Red)
                }
                .height(20)
                .margin({ top:10 })
              }
              .width('50%')
              .padding({top:10, bottom:10})
              .border({
                width:{top:1, left:1, right:i % 2 == 1 ? 1 : 0, bottom:i == this.utils.length - 1 || i == this.utils.length - 2 ? 1 : 0},
                color:0xCCCCCC
              })
              .onClick(() => {
                router.pushUrl({
                  url:item.path,
                  params:{
                    id:item.id
                  }
                }, router.RouterMode.Single)
              })
            },item => item.id)
          }
          .padding(10)
          .backgroundColor('#fff')
          .borderRadius(10)
        }
        .width('100%')
        .padding({right:15, left:15})
        .margin({top:20})

3、效果

三、官方:
        1、官方实例以及效果图

        可以看看官方的实例,官方的实例是四边一起,属性链式的形式的形式设置的

// 线段
Text('dashed')
  .borderStyle(BorderStyle.Dashed)
  .borderWidth(5)
  .borderColor(0xAFEEEE)
  .borderRadius(10)

// 点线
Text('dotted')
  .border({ 
    width: 5, 
    color: 0x317AF7,
    radius: 10, 
    style: BorderStyle.Dotted 
  })
  

2、官方文档:

边框设置-通用属性-组件通用信息-组件-组件参考(基于ArkTS的声明式开发范式)-手机、平板、智慧屏和智能穿戴开发-ArkTS API参考-HarmonyOS应用开发https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-universal-attributes-border-0000001333720989

华为鸿蒙操作系统(Arkts)中,设置输入框(EditText)边框颜色通常涉及到修改控件的主题属性。你可以通过以下步骤来进行: 1. 首先,找到你的Activity或Fragment文件,在XML布局文件中找到需要设置边框颜色的EditText组件。 2. 使用`android:textColorHint`属性来设置输入框的默认灰色提示文本的颜色。例如: ```xml <com.huawei.hms.widget.EditText android:id="@+id/my_input_box" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColorHint="?android:textColorSecondary" /> ``` `?android:textColorSecondary`会引用系统定义的次要颜色,如果你想自定义颜色,可以使用`app:colorPrimary`(或者其他颜色资源名)代替。 3. 如果你想直接改变边框颜色,虽然系统主题可能不直接提供这个选项,你可以尝试覆盖其样式,创建一个新的`style.xml`文件,并定义一个自定义的 EditText 样式,其中包含边框颜色。例如: ```xml <style name="MyEditText" parent="Widget.HMS.MaterialComponents.TextInputLayout"> <item name="boxStrokeColor">@color/your_border_color</item> <item name="boxStrokeWidth">1dp</item> </style> ``` 然后在你的组件上应用这个新风格: ```xml <com.huawei.hms.widget.TextInputLayout style="@style/MyEditText" android:id="@+id/my_input_box" ... /> ``` 其中`@color/your_border_color`是你想要的边框颜色值。 请注意,具体的API可能会因版本更新而变化,建议查阅最新的鸿蒙文档以获取最准确的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__冬七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值