1e41f4b71Sopenharmony_ci# ArkUI Subsystem Changelog
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci## cl.arkui.1 Change in the Priority of alignContent and align Attributes for the \<Stack> Component
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ciChanged the priority of **alignContent** and **align** as follows:
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ciAPI version 9 and earlier: The universal attribute **align** prevails.
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ciAPI version 10 and later: The last set attribute prevails.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ciWhen two attributes provide the same functions, the last set attribute takes effect. This rule applies to **alignContent** and **align**, both of which set the alignment mode when used for the **\<Stack>** component.
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci**Example**
14e41f4b71Sopenharmony_ci```ts
15e41f4b71Sopenharmony_ci// xxx.ets
16e41f4b71Sopenharmony_ci@Entry
17e41f4b71Sopenharmony_ci@Component
18e41f4b71Sopenharmony_cistruct StackExample {
19e41f4b71Sopenharmony_ci  build() {
20e41f4b71Sopenharmony_ci    Stack({alignContent:Alignment.Start}){
21e41f4b71Sopenharmony_ci      Text("Stack's child").backgroundColor(Color.Brown).height("100").width(100)
22e41f4b71Sopenharmony_ci    }
23e41f4b71Sopenharmony_ci    .width(300).height(300)
24e41f4b71Sopenharmony_ci    .backgroundColor(Color.Pink)
25e41f4b71Sopenharmony_ci    .align(Alignment.Center)
26e41f4b71Sopenharmony_ci    .alignContent(Alignment.TopEnd)
27e41f4b71Sopenharmony_ci  }
28e41f4b71Sopenharmony_ci}
29e41f4b71Sopenharmony_ci```
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ciAPI version 9 and earlier: Child components are arranged based on the universal attribute **align**.
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci![stack](figures/api9.png)
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ciAPI version 10 and later: Child components are arranged based on the **alignContent** attribute, which is set at a later time than **align**.
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci![stack](figures/api10_and_later.png)
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci**Change Impact**
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ciWhen both **alignContent** and **align** attributes are set, the last set attribute prevails.
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci## cl.arkui.2 Behavior Change of the fillText and strokeText APIs of the \<Canvas> Component
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ciWhen the **fillText** and **strokeText** APIs are used to draw text, no text wrapping occurs.
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci**Example**
50e41f4b71Sopenharmony_ci```ts
51e41f4b71Sopenharmony_ci// xxx.ets
52e41f4b71Sopenharmony_ci@Entry
53e41f4b71Sopenharmony_ci@Component
54e41f4b71Sopenharmony_cistruct FillText {
55e41f4b71Sopenharmony_ci  private settings: RenderingContextSettings = new RenderingContextSettings(true)
56e41f4b71Sopenharmony_ci  private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci  build() {
59e41f4b71Sopenharmony_ci    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
60e41f4b71Sopenharmony_ci      Canvas(this.context)
61e41f4b71Sopenharmony_ci        .width('100%')
62e41f4b71Sopenharmony_ci        .height('100%')
63e41f4b71Sopenharmony_ci        .backgroundColor('#ffff00')
64e41f4b71Sopenharmony_ci        .onReady(() =>{
65e41f4b71Sopenharmony_ci          this.context.font = '50px sans-serif'
66e41f4b71Sopenharmony_ci          this.context.fillText("Hello World!", 0, 100)
67e41f4b71Sopenharmony_ci          this.context.fillText("Hello World! This is a long string to fully show", 0, 150)
68e41f4b71Sopenharmony_ci          this.context.strokeText("Hello World!", 0, 250)
69e41f4b71Sopenharmony_ci          this.context.strokeText("Hello World! This is a long string to fully show", 0, 300)
70e41f4b71Sopenharmony_ci        })
71e41f4b71Sopenharmony_ci    }
72e41f4b71Sopenharmony_ci    .width('100%')
73e41f4b71Sopenharmony_ci    .height('100%')
74e41f4b71Sopenharmony_ci  }
75e41f4b71Sopenharmony_ci}
76e41f4b71Sopenharmony_ci```
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ciAPI version 9 and earlier: When the **fillText** and **strokeText** APIs are used to draw text, the text is wrapped based on the component width.
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci![stack](figures/api9filltext.jpeg)
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ciAPI version 10 and later: When the **fillText** and **strokeText** APIs are used to draw text, no text wrapping occurs.
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci![stack](figures/api10filltext.jpeg)
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci**Change Impact**
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ciThe text appearance is affected now that the text is not wrapped based on the component width.
89