1# ArkUI Subsystem Changelog 2 3## cl.arkui.1 Default Layout Behavior Change for TextPicker Content 4 5**Access Level** 6 7Public API 8 9**Reason for Change** 10 11The layout drawing logic of **TextPicker** was inconsistent with that of **DatePicker** and **TimePicker**. When the component's height was set too large, the number of scrollable options displayed would exceed 5, causing an abnormal fade effect at the top and bottom edges. 12 13**Change Impact** 14 15This change is a compatible change. 16 17Before the change, the total height of the scrollable options in **TextPicker** is the same as the component's height, and the scroll event responds throughout the entire component. 18 19 20 21After the change, when the **TextPicker** component's height is too large (greater than the height required for five scrollable options), the overall height of the component remains unchanged, but a maximum of 5 scrollable options will be displayed, centered vertically within the component. The remaining area will be filled with blank space, and gesture events will only respond within the scrollable option area. 22 23 24 25**API Level** 26 278 28 29**Change Since** 30 31OpenHarmony SDK 5.0.0.17 32 33**Key API/Component Changes** 34 35**TextPicker** component 36 37**Adaptation Guide** 38 39The default behavior has changed, no adaptation is needed, but you should ensure that the new behavior does not cause issues with the overall application logic. 40 41## cl.arkui.2 Dialog Box Closure Behavior Change During Page Route Transition 42 43**Access Level** 44 45Public API 46 47**Reason for Change** 48 49In the hierarchy, pages and dialog boxes are at the same level and are independent of each other. Dialog boxes should not be closed automatically during page navigation, and the closure behavior of the dialog box should be controlled by the developer as needed. 50 51**Change Impact** 52 53This change is a non-compatible change. 54 55Before the change, if a page with dialog boxes has navigation performed, the page content would change, and the last dialog box would also be closed automatically. 56 57After the change,if a page with dialog boxes has navigation performed, the page content would change, but the dialog will no longer be closed automatically, meaning the dialog box will always remain on top of the page and will not disappear. 58 59**API Level** 60 619 62 63**Change Since** 64 65OpenHarmony SDK 5.0.0.17, effective since API version 12 66 67**Key API/Component Changes** 68 69Router, Dialog 70 71**Adaptation Guide** 72 73To close all dialog boxes on the current page during route redirection, you can manually close them by calling the dialog box's **close** method before route redirection. 74 75The sample code is as follows: 76```ts 77import router from '@ohos.router'; 78// Record all dialog boxes on the current page. 79const dialogs: Map<string, CustomDialogController> = new Map(); 80 81@CustomDialog 82struct CustomDialogExample { 83 controllerTwo?: CustomDialogController 84 build() { 85 Column() { 86 Button('Redirect') 87 .onClick(() => { 88 // Close all dialog boxes on the current page. 89 dialogs.forEach((controller, name) => { 90 controller.close(); 91 }) 92 // Route redirection 93 router.pushUrl({url: 'pages/Index'}) 94 }) 95 } 96 } 97} 98 99@Entry 100@Component 101struct CustomDialogUser { 102 dialogController: CustomDialogController | null = new CustomDialogController({ 103 builder: CustomDialogExample(), 104 }) 105 build() { 106 Column() { 107 Button('Open Dialog Box') 108 .onClick(() => { 109 if (this.dialogController != null) { 110 // Open the dialog box. 111 this.dialogController.open() 112 // Record the current dialog box. 113 dialogs.set('first', this.dialogController) 114 } 115 }) 116 } 117 } 118} 119``` 120 121## cl.arkui.3 syncLoad Effect Change for Image Component 122 123**Access Level** 124 125Public API 126 127**Reason for Change** 128 129Some implementation scenarios on the application side require the **Image** component to support asynchronous loading of pixel maps. 130 131**Change Impact** 132 133This change is a non-compatible change. 134 135**syncLoad** is an attribute of the **Image** component used to set whether the image is loaded synchronously. 136 137Before API version 12, regardless of whether **syncLoad** is set to **false** or **true**, the **Image** component always loaded pixel maps synchronously in the main thread. 138 139Since API version 12, the **Image** component loads pixel maps synchronously or asynchronously according to **syncLoad**. If this attribute is not set, the default value **false** is used. Asynchronous loading will occur in an asynchronous thread, and there may be a flicker when loading pixel maps. 140 141**API Level** 142 14312 144 145**Change Since** 146 147OpenHarmony SDK 5.0.0.17 148 149**Example** 150 151N/A 152 153**Key API/Component Changes** 154 155**Image** component 156 157**Adaptation Guide** 158 159If your application requires the **Image** component to load pixel maps synchronously, **syncLoad** must be set to **true**. 160