题目
阅读以下代码,下列选[1]项描述正确的是 Row()( Text('1').height(50).width('25%').fontSize(16).backgroundColor(0xF5DEB3).textAlign(TextAlign.End) Text('2').height(50).width('25%').fontSize(16).backgroundColor(0xD2B48C).textAlign(TextAlign.End) Text('3').height(50).width('25%').fontSize(16).backgroundColor(0xF5DEB3).textAlign(TextAlign.End) Text('4').height(50).width('25%').fontSize(16).backgroundColor(0xD2B48C).textAlign(TextAlign.End) ).width('90%').direction(Direction.Rtl) A. Text内数字从左往右依次为1, 2, 3, 4,数字在Text中的对齐方式为水平对齐首部B. Text内数字从左往右依次为4, 3, 2, 1,数字在Text中的对齐方式为水平对齐尾部C. Text内数字从左往右依次为1, 2, 3, 4,数字在Text中的对齐方式为水平对齐尾部D. Text内数字从左往右依次为4, 3, 2, 1,数字在Text中的对齐方式为水平对齐首部
阅读以下代码,下列选[1]项描述正确的是
Row(){
Text('1').height(50).width('25%').fontSize(16).backgroundColor(0xF5DEB3).textAlign(TextAlign.End)
Text('2').height(50).width('25%').fontSize(16).backgroundColor(0xD2B48C).textAlign(TextAlign.End)
Text('3').height(50).width('25%').fontSize(16).backgroundColor(0xF5DEB3).textAlign(TextAlign.End)
Text('4').height(50).width('25%').fontSize(16).backgroundColor(0xD2B48C).textAlign(TextAlign.End)
}.width('90%').direction(Direction.Rtl)
- A. Text内数字从左往右依次为1, 2, 3, 4,数字在Text中的对齐方式为水平对齐首部
- B. Text内数字从左往右依次为4, 3, 2, 1,数字在Text中的对齐方式为水平对齐尾部
- C. Text内数字从左往右依次为1, 2, 3, 4,数字在Text中的对齐方式为水平对齐尾部
- D. Text内数字从左往右依次为4, 3, 2, 1,数字在Text中的对齐方式为水平对齐首部
题目解答
答案
根据代码分析:
1. `Row` 的 `direction` 为 `Rtl`,导致 `Text` 组件按逆序排列为 `4, 3, 2, 1`。
2. 在 `Rtl` 模式下,`TextAlign.Start` 对应右对齐(水平对齐尾部)。
3. 综上,数字顺序为 `4,3,2,1`,对齐方式为水平对齐尾部。
答案:B. Text内数字从左往右依次为4,3,2,1,数字在Text中的对齐方式为水平对齐尾部。
解析
考查要点:本题主要考查Flutter框架中Row
组件的direction
属性对子widget排列顺序的影响,以及TextAlign
枚举在不同方向下的对齐方式。
解题核心思路:
- 方向属性分析:
Row.direction
设置为Direction.Rtl
时,子widget的排列顺序会被逆序显示。 - 对齐方式解析:
TextAlign.End
在默认ltr
方向下为右对齐,但在rtl
方向下,对齐方向会根据整体方向调整,仍保持“尾部对齐”的语义。
破题关键点:
- 子widget顺序:
Rtl
模式下,子widget的显示顺序与添加顺序相反。 - 对齐方向关联:
TextAlign.End
始终对应“尾部对齐”,与Row
的方向无关。
步骤1:分析Row
方向对子widget顺序的影响
代码中Row.direction
设置为Direction.Rtl
,因此子widget的排列顺序会被逆序显示。原添加顺序为1, 2, 3, 4
,最终显示顺序为4, 3, 2, 1
(从左往右)。
步骤2:解析TextAlign.End
的对齐方向
- 默认
ltr
方向:TextAlign.End
对应右对齐(水平对齐尾部)。 rtl
方向下:虽然整体排列方向改变,但TextAlign.End
仍保持“尾部对齐”的语义,即每个Text
中的数字在容器内右对齐。
步骤3:排除错误选项
- 选项A、C:顺序错误(未考虑
Rtl
反转)。 - 选项D:对齐方式错误(混淆了
Start
与End
的对齐方向)。