当前位置:   article > 正文

鸿蒙开发之导航栏tabs(类似Android tablayout)_鸿导航栏

鸿导航栏

        当页面信息较多时,为了让用户能够聚焦于当前显示的内容,需要对页面内容进行分类,提高页面空间利用率。Tabs组件可以在一个页面内快速实现视图内容的切换,一方面提升查找信息的效率,另一方面精简用户单次获取到的信息量。

基本布局

        Tabs组件的页面组成包含两个部分,分别是TabContent和TabBar。TabContent是内容页,TabBar是导航页签栏,页面结构如下图所示,根据不同的导航类型,布局会有区别,可以分为底部导航、顶部导航、侧边导航,其导航栏分别位于底部、顶部和侧边。

一、头部

  1. @Builder
  2. AppStore(){
  3. Tabs({ barPosition: BarPosition.Start}){
  4. TabContent() {
  5. Column() {
  6. }
  7. .width('100%')
  8. .height('100%')
  9. }
  10. .tabBar("全部")
  11. TabContent() {
  12. Column() {
  13. }
  14. .width('100%')
  15. .height('100%')
  16. }
  17. .tabBar("已安装")
  18. TabContent() {
  19. Column() {
  20. }
  21. .width('100%')
  22. .height('100%')
  23. }
  24. .tabBar("未安装")
  25. TabContent() {
  26. Column() {
  27. }
  28. .width('100%')
  29. .height('100%')
  30. }
  31. .tabBar("更新")
  32. }
  33. }

二、底部

  1. @Builder
  2. AppStore(){
  3. Tabs({ barPosition: BarPosition.End}){
  4. TabContent() {
  5. Column() {
  6. }
  7. .width('100%')
  8. .height('100%')
  9. }
  10. .tabBar("全部")
  11. TabContent() {
  12. Column() {
  13. }
  14. .width('100%')
  15. .height('100%')
  16. }
  17. .tabBar("已安装")
  18. TabContent() {
  19. Column() {
  20. }
  21. .width('100%')
  22. .height('100%')
  23. }
  24. .tabBar("未安装")
  25. TabContent() {
  26. Column() {
  27. }
  28. .width('100%')
  29. .height('100%')
  30. }
  31. .tabBar("更新")
  32. }
  33. }

三、侧边导航(多用于横屏)

  1. @Builder
  2. AppStore(){
  3. Tabs({ barPosition: BarPosition.Start}){
  4. TabContent() {
  5. Column() {
  6. }
  7. .width('100%')
  8. .height('100%')
  9. }
  10. .tabBar("全部")
  11. TabContent() {
  12. Column() {
  13. }
  14. .width('100%')
  15. .height('100%')
  16. }
  17. .tabBar("安装")
  18. TabContent() {
  19. Column() {
  20. }
  21. .width('100%')
  22. .height('100%')
  23. }
  24. .tabBar("未装")
  25. TabContent() {
  26. Column() {
  27. }
  28. .width('100%')
  29. .height('100%')
  30. }
  31. .tabBar("更新")
  32. }.vertical(true)
  33. }

接下来主要介绍自定义 tabs

自定义Tabs中的TabContent

在tabContent 添加要自定义的布局,如下代码

  1. TabContent() {
  2. Column() {
  3. Text('我的').height('100%')
  4. }
  5. .width('100%')
  6. .height('100%')
  7. .backgroundColor('#007DFF')
  8. }
  9. .tabBar(this.TabBuilder('我的', 3, $r('app.media.ic_tab_setting_sel'), $r('app.media.ic_tab_setting')))
  1. @Builder
  2. TabBuilder(title: string, targetIndex: number, selectedImg: Resource, normalImg: Resource) {
  3. Column() {
  4. Image(this.currentIndex === targetIndex ? selectedImg : normalImg)
  5. .size({ width: 25, height: 25 })
  6. Text(title)
  7. .margin({top:2})
  8. .fontColor(this.currentIndex === targetIndex ? '#ff7900' : '#6B6B6B')
  9. }
  10. .width('100%')
  11. .margin({top:2,bottom:2})
  12. .onClick(event => {
  13. this.currentIndex = targetIndex;
  14. this.tabsController.changeIndex(targetIndex);
  15. })
  16. .justifyContent(FlexAlign.Center)
  17. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/573805
推荐阅读
相关标签
  

闽ICP备14008679号