鸿蒙开发:了解分割线

简介: 在实际的开发中,如果自带的分割线能够满足我们的需求,以自身的分割线属性为主,如果不满足,我们可以使用组件进行绘制。

前言


本文基于Api13


分割线的场景非常之多,特别常见于列表中,随便打开一个应用,都能够找到分割线的足迹,虽然分割线用处很多,但是,在实际的开发中,如何去正确的使用分割线呢,这是我们要谈的问题。


比如一个简简单单的列表,分割线该如何绘制?


image.png

肯定很多人都会想到,使用列表中自带的分割线属性divider,使用它可以很快速的实现一个分割线,代码如下:


Column() {
      List() {
        ForEach(this.dataList, (item: string) => {
          ListItem() {
            Text(item)
              .width("100%")
              .height(50)
              .textAlign(TextAlign.Center)
          }
        })
      }
      .divider({
        color: Color.Gray,
        strokeWidth: 1,
      })
    }
    .height('100%')
    .width('100%')


运行之后效果:



如果,我的分割线不是一条规则的线呢?比如是一个图片,比如是一段虚线,再比如,在条目的最后,我也想要分割线呢?显然在使用列表自带的分割线属性divider就无法满足了。


边框样式border


每个组件都有一个通用属性border,使用它可以很方便的实现一个边框样式,可以设置边框粗细,颜色,圆角等等属性。


比如,设置一个边框为1,颜色为灰色的边框:


Column() {
      }.width("100%")
      .height(50)
      .border({ width: 1, color: Color.Gray })


效果如下:



再比如,加一个圆角度数:


Column() {
      }.width("100%")
      .height(50)
      .border({ width: 1, color: Color.Gray, radius: 10 })


效果如下:


Column() {
      List() {
        ForEach(this.dataList, (item: string) => {
          ListItem() {
            Text(item)
              .width("100%")
              .height(50)
              .textAlign(TextAlign.Center)
              .border({ width: { bottom: 1 }, color: Color.Gray })
          }
        })
      }
    }
    .height('100%')
    .width('100%')

当然了,你也可以设置其它的类型,比如虚线:


Column() {
      }.width("100%")
      .height(50)
      .border({ width: 1, color: Color.Gray, radius: 10,style:BorderStyle.Dashed})


我们看下效果:



一般设置分割线,在底部,我们直接给条目的组件设置底部的分割线就行:


List() {
        ForEach(this.dataList, (item: string) => {
          ListItem() {
            Text(item)
              .width("100%")
              .height(50)
              .textAlign(TextAlign.Center)
              .border({ width: { bottom: 1 }, color: Color.Gray })
          }
        })
      }


可以看到,实现的效果和组件自带的分割线属性是一样,而且最后一个条目也完美的补上了。



分割线组件Divider


要不说,还是鸿蒙呢,对于一个分割线也提供了一个组件出来,这是生怕开发者不会绘制啊,这个组件和其他的组件使用方式基本一致,但就一个作用,就是展示分割线。


Divider()
        .strokeWidth(10)
        .color(Color.Gray)



属性

类型

概述

strokeWidth

number /string

设置分割线的宽度

color

ResourceColor

设置分割线的颜色

vertical

boolean

设置分割线的方向,使用水平分割线还是垂直分割线。

false:水平分割线;true:垂直分割线。

lineCap

LineCapStyle

设置分割线的端点样式


还是上述的案例,我们是用Divider组件设置一下分割线:


List() {
        ForEach(this.dataList, (item: string) => {
          ListItem() {
            Column() {
              Text(item)
                .width("100%")
                .height(50)
                .textAlign(TextAlign.Center)
              Divider()
                .strokeWidth(10)
                .color(Color.Gray)
            }
          }
        })
      }


我们看下最终的效果:


相关总结


在实际的开发中,如果自带的分割线能够满足我们的需求,以自身的分割线属性为主,如果不满足,我们可以使用组件进行绘制。


一般来说,关于Divider组件很少用于列表中,一般都是固定UI中需要一个分割线,这时就可以进行使用。

目录
打赏
0
15
16
1
186
分享
相关文章
鸿蒙开发,远场通信服务rcp拦截器问题
关于rcp的拦截器问题,最重要的就是会话复用的时候,如果Request对象中有需要的参数,就直接用Request中的,而不是使用session中的。
鸿蒙开发,远场通信服务rcp拦截器问题
鸿蒙开发:什么是ArkTs?
本小结主要简单介绍了ArkTs语言的相关知识,都是一些概念性质的内容,大家作为一个了解即可
101 61
|
11天前
|
鸿蒙开发:自定义一个搜索模版
这样的一个模版,可以简单的分为,三个部分,分别是上边的搜索框,中间的历史搜索和下边的热门搜索,搜索框,我们直接可以使用系统的组件Search,历史搜索,由于是内容不一的搜索的内容,这里使用弹性布局Flex,下边的热门搜索,条目规格一致,这里我们直接使用Grid网格组件。
57 23
鸿蒙开发:自定义一个搜索模版
鸿蒙开发:ArkTs语言注释
关于注释,有一点需要注意,那就是,注释,不会被编译器或解释器执行,而本小节的重点并不是简单的教大家注释如何去写,而是在实际的项目中,我们能够真正的把注释投入到实际的开发中。
56 18
鸿蒙开发:ArkTs语言注释
鸿蒙开发:权限管理之权限声明
本文,主要简单概述了为什么要有权限管理,以及权限管理的声明原则,这些都是基本的概念内容,大家做为了解即可,重要的是怎么声明权限,在什么位置声明权限,这一点需要掌握。
58 16
鸿蒙开发:权限管理之权限声明
|
5天前
|
鸿蒙开发:远场通信服务rcp会话问题
总体来说,问题倒不是很大,解决起来也不是很麻烦,所以啊,老铁们,在实际的开发中,对于一些官方文档,还是建议多看,这样可以提前避免后续的不必要麻烦。
鸿蒙开发:远场通信服务rcp会话问题
鸿蒙开发:console日志输出
针对初学者而言,大家只需要掌握住日志打印即可,等到了鸿蒙应用开发的时候,还有一个鸿蒙原生的打印工具HiLog,到时,我们也会详细的去讲述,也会针对HiLog,封装一个通用的工具类。
53 11
鸿蒙开发:console日志输出
|
10天前
|
鸿蒙开发:了解应用级配置信息
在实际的开发中,如果有共用的资源,建议大家都放到AppScope目录下,对于一些应用级别的信息,比如应用的名字,还有应用的图标,虽然说在Moulde下也可以配置,但是为了更方便的管理,这里比较推荐以AppScope目录下的app.json5为主,当然了,只是推荐,实际当中,两者都可以实现,大家选择其中一种方式即可。
56 12
鸿蒙开发:了解应用级配置信息
鸿蒙开发:ArkTs数据类型
最后一点是,ArkTS不支持any和unknown类型,需要显式指定具体类型,否则会报异常,具体原因是,这是ArkTS的特性之一,那就是使用静态类型;如果程序采用静态类型,即所有类型在编译时都是已知的,那么开发者就能够容易理解代码中使用了哪些数据结构。同时,由于所有类型在程序实际运行前都是已知的,编译器可以提前验证代码的正确性,从而可以减少运行时的类型检查,有助于提升性能。
鸿蒙开发:ArkTs数据类型
|
3天前
|
鸿蒙开发:填充剩余空间
关于占满剩余的空间,如果权重能够解决,还是以权重为主,因为Blank的使用必须父组件的宽高有值,否则就会不生效,当然了,在实际的开发中,还是具体问题具体分析,使用恰当的方式解决为主。
鸿蒙开发:填充剩余空间

热门文章

最新文章