单选题
【单选题】 关于 Tabs 组件页签的位置设置,下面描述错误的是
A
当 barPosition 为 Start(默认值),vertical 属性为 false 时(默认值),页签位于容器顶部。
B
当 barPosition 为 Start(默认值) ,vertical 属性为 true 时,页签位于容器左侧
C
当 barPosition 为 End ,vertical 属性为 false(默认值)时,页签位于容器底部。
D
当 barPosition 为 End ,vertical 属性为 true 时,页签位于容器底部。
答案解析
正确答案:D
解析:
本题考查的是 Tabs 组件中页签(tab bar)位置的布局逻辑,核心在于理解 `barPosition` 和 `vertical` 两个属性的协同作用。
---
### 一、核心知识点解析
1. **`vertical` 属性**
- 类型:布尔值(boolean)
- 含义:控制 Tabs 的整体布局方向。
- `vertical = false`(默认):Tabs 采用**水平布局**,即内容区左右切换,页签栏沿**水平方向**排列(顶部或底部)。
- `vertical = true`:Tabs 采用**垂直布局**,即内容区上下切换,页签栏沿**垂直方向**排列(左侧或右侧)。
2. **`barPosition` 属性**
- 类型:枚举值,常见为 `'Start' | 'End'`(部分框架也可能支持 `'Top' | 'Bottom' | 'Left' | 'Right'`,但本题语境中明确限定为 Start/End)
- 含义:指定页签栏相对于内容区域的**对齐位置**,其解释依赖于 `vertical` 的取值:
- 当 `vertical = false`(水平布局)时:
- `barPosition: 'Start'` → 页签栏位于**内容区上方**(即容器顶部)
- `barPosition: 'End'` → 页签栏位于**内容区下方**(即容器底部)
- 当 `vertical = true`(垂直布局)时:
- `barPosition: 'Start'` → 页签栏位于**内容区左侧**(即容器左侧)
- `barPosition: 'End'` → 页签栏位于**内容区右侧**(即容器右侧)
> ✅ 关键原则:`barPosition` 的语义是“页签栏在内容区的起始侧或结束侧”,而“起始侧/结束侧”由布局方向(`vertical`)决定——
> - 水平布局下,主轴为水平方向,Start = 左 → 对应顶部(视觉上页签在内容上方),End = 右 → 对应底部;
> - 垂直布局下,主轴为垂直方向,Start = 上 → 对应左侧(页签在内容左方),End = 下 → 对应右侧。
该逻辑符合主流 UI 框架(如 ArkUI、HarmonyOS 的 Tabs,或类 React 的 Ant Design、Element Plus 等垂直 Tabs 设计规范)的实现惯例。
---
### 二、选项逐项分析
- **A 选项**:
`barPosition = Start`(默认),`vertical = false`(默认)→ 水平布局,Start 表示页签在内容区上方 → 页签位于容器顶部。
✅ 描述正确。
- **B 选项**:
`barPosition = Start`,`vertical = true` → 垂直布局,Start 表示页签在内容区上方 → 此时页签栏垂直排列,位于内容区**左侧**(因内容区在右,页签在左)。
✅ 描述正确。
- **C 选项**:
`barPosition = End`,`vertical = false` → 水平布局,End 表示页签在内容区下方 → 页签位于容器底部。
✅ 描述正确。
- **D 选项**:
`barPosition = End`,`vertical = true` → 垂直布局,End 表示页签在内容区**下方** → 此时页签栏仍为垂直排列,应位于内容区**右侧**(内容区在左,页签在右),而非底部。
❌ “页签位于容器底部”错误。底部是水平布局下的概念,与 `vertical = true` 矛盾;当 `vertical = true` 时,页签只能出现在**左侧或右侧**,不可能出现在顶部或底部。
---
### 三、结论
错误选项为 **D**,因其混淆了布局方向与位置语义:在垂直布局(`vertical = true`)下,`barPosition = End` 对应的是容器**右侧**,而非底部。
答案:D
相关知识点:
Tabs 页签位置设置情况记
题目纠错
2025年HarmonyOS应用开发者基础认证题库
相关题目
单选题
【单选题】阅读以下代码,下列选项描述正确的是()
单选题
【单选题】Tabs 组件的页签切换时会触发哪个事件
单选题
【单选题】以下对图片进行缩放时,能够保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内的是
单选题
【单选题】以下关于鼠标悬浮状态效果的描述,错误的是
单选题
【单选题】当 opacity 属性设置为 0 时,组件的状态是
单选题
【单选题】下列代码中,可以实现 Text 组件的文本装饰线在文本底部(下划线)的是
单选题
【单选题】在横屏模式下,使用 Array 的写法设置页面右上角菜单时,最多支持显示多少个图标菜单
单选题
【单选题】在 ArkUl 中,Length 类型用于描述尺寸单位时,如果不指定像素单位,则默认单位是
单选题
【单选题】Tabs 组件的页签位于容器底部的是
单选题
【单选题】假如某 UIAbility 的启动模式被配置为指定实例启动模式,在该 UIAbility 启动之前,会先进入其对应的 AbilityStage 的哪个生命周期回调中,以获取该 UIAbility 实例的 Key 值
