首页 > 其他分享 >HarmonyOS:组件Navigation使用中List显示不全的问题探究以及解决办法

HarmonyOS:组件Navigation使用中List显示不全的问题探究以及解决办法

时间:2024-07-25 14:28:08浏览次数:10  
标签:item color 高度 100% List HarmonyOS Navigation width

1.线性布局中在使用NavPathStack布局中中发现如果使用List组件会发现item显示不全,在使用官方提供的例子中也发现此问题。

如图所示:
请添加图片描述
底部被遮挡,官方示例的写法

2.如果线性布局中,不显示导航栏,也会出现List被遮挡的问题

如图所示:
请添加图片描述

我们的页面布局中的List缺失一部分

根据Previewer中的分析
如图所示:
请添加图片描述
Navigation组件的高度是给的整个屏幕的高度,如果我们加了ToolBar,那么List的区域需要减去toolbar的高度,这个系统不会帮我们自动计算的,需要设置内间距,距离就是toolbar的高度

List({ space: 12 }) {
          ForEach(this.arr, (item:string) => {
            ListItem() {
              NavRouter() {
                Text("NavRouter" + item)
                  .width("100%")
                  .height(72)
                  .backgroundColor('#FFFFFF')
                  .borderRadius(24)
                  .fontSize(16)
                  .fontWeight(500)
                  .textAlign(TextAlign.Center)
                NavDestination() {
                  Text("NavDestinationContent" + item)
                }
                .title("NavDestinationTitle" + item)
              }
            }
          }, (item:string):string => item)
        }
        .width("90%")
        //内边距的高度需要减去toolbar的高度
        .padding({ bottom: 60 })

更复杂的是我的项目中,因为我的例子中,没有显示导航的titile,顶部是搜索框,中间是tabs,底部也是tabs,list的区域更小,这时候设置内间距也不行,还是会出现显示不全的问题,需要隐藏title才行,方法 .hideTitleBar(true)

build() {
    Column(){
      Navigation(this.pageStack) {
        Row(){
            Search({ value: this.changeValue, placeholder: '请输入搜索条件', controller: this.searchController })
              .backgroundColor($r('app.color.main_input_bg_color'))
              .placeholderColor(Color.Grey)
              .placeholderFont({ size: 14, weight: 400 })
              .textFont({ size: 14, weight: 400 })
              .enterKeyType(EnterKeyType.Search)
              .margin({top:10,left:12,right:12})
              .height(44)
              .width('80%')
        }
        .backgroundColor($r('app.color.main_nav_bg_color'))
        .height(64)
        .width('100%')
        Tabs({ barPosition: BarPosition.Start, index: this.currentIndex, controller: this.tabController }) {
          TabContent() {
            //list在此自定义组件内,底部的tabbar高度要减去
            TodayVisitRoutePage({blockController:this.BlockRef,selectRouteItem:this.selectRouteItem}).padding({bottom:60});
          }.tabBar(this.tabBuilder(0, 'green'))

          TabContent() {
            TodayVisitStorePage();
          }.tabBar(this.tabBuilder(1, 'blue'))
        }
        .vertical(false)
        .barMode(BarMode.Fixed)
        .barWidth('100%')
        .barHeight(60)
        .animationDuration(400)
        .onChange((index: number) => {
          this.currentIndex = index;
          this.changeTabIndex();
        })
      }
      .width('100%')
      .height('100%')
      .margin({ top: 0 })
      .padding({bottom:0})
      .backgroundColor($r('app.color.main_input_bg_color'))
      //隐藏导航标题
      .hideTitleBar(true)
    }

这样就可以正确计算出来组件List的高度了,才不会遮挡或者高度不够的问题。
结语:一起学习,探索,可以私信问我要示例。

标签:item,color,高度,100%,List,HarmonyOS,Navigation,width
From: https://blog.csdn.net/luxingxing1/article/details/140688455

相关文章

  • 鸿蒙 HarmonyOS axios封装
    ✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向)......
  • 鸿蒙HarmonyOS【应用开发一、鸿蒙简介】
    ✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向)......
  • C#Http服务器报HttpListener拒绝访问异常解决方法
    问题:Win7下在尝试搭建简单http服务器的时候,执行httpListener.Start();报错HttpListener拒绝访问异常 代码如下:HttpListenerhttpListener=newHttpListener();//创建服务器监听httpListener.Prefixes.Add("http://+:8080/");//配置监听地址。+代表本机可能的IP如localho......
  • 列表(list)
    列表(list)也是最常用的Python数据类型之一,它以一个方括号内包含多个其他数据项(字符串,数字等甚至是另一个列表),数据项间以逗号作为分隔的数据类型。#定义列表list1=['a','b','c','a']print(list1)#输出结果['a','b','c','a']list1.append('......
  • electron TodoList网页应用打包成linux deb、AppImage应用
    这里用的是windows的wsl的ubuntu环境electron应用打包linux应用需要linux下打包,这里用windows的wsl的ubuntu环境进行操作1)linuxubuntu安装nodejs、electron安装nodejs:sudoaptupdatesudoaptupgrade##快捷安装curl-fsSLhttps://deb.nodesource.com/setup_20.x......
  • HarmonyOS开发实例(附项目源码)
    文件目录如下。本项目共由12个页面组成,其中Index界面为app的4个主界面和Tabs导航栏组件拼接而成的真正的app主界面。page,,livehouse,ticket,my分别不带导航页的4个主界面。M1,M2,M3,M4为在page主界面进行搜索操作后跳转的搜索完成的界面,register,sign为在进入app的主界面之前......
  • Python获取list中指定元素索引的两种方法
    在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等。怎么办?看下面方法一:利用数组自身的特性list.index(target),其中a是你的目标list,target是你需要的下标对应的值li=[10,8,9,26,72,6,28]print(li.index(8))但是,......
  • HarmonyOS资源使用
    目录文档并不完整具体看官方文档 资源使用说明应用资源资源文件介绍base目录与限定词目录访问应用资源示例 练习操作系统资源 资源分类与访问 资源分类资源目录base目录限定词目录限定词目录的命名要求资源组目录媒体资源类型说明资源文件示例创建资源......
  • MYSQL中SHOW PROCESSLIST使用
    SHOWPROCESSLIST是显示用户正在运行的线程,需要注意的是,除了root用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS权限。通常我们通过top检查发现mysqlCPU或者iowait过高那么解决这些问题......
  • 多个list取交集,查询的问题
    查询条件有多个,但对应数据库就1个字段,此时,查询条件需要取交集。Collection<String>districtCodes=queryPageDTO.getDistrictCodes();Set<String>levelCityCodes=handleCityLevel(queryPageDTO);Set<String>levelRegionCityCodes=handleCityLevelRegion(queryPageDTO);/......