1# 窗口子系统Changelog 2 3## cl.pipwindow.1 画中画窗口默认尺寸固定为大窗真实尺寸行为变更 4 5**访问级别** 6 7公开接口 8 9**变更原因** 10 11 12画中画窗口以启动窗口时实际大小为基准,小窗和大窗基准不同,双击缩放时未修改窗口真实尺寸而是通过修改窗口缩放级别。 13 14例如应用基于小窗渲染自定义UI控件后,用户双击缩放至大窗后,该自定义UI控件的视觉大小和以大窗开启画中画时,自定义UI控件的视觉大小不一致。因此将画中画窗口大小固定为大窗时的真实尺寸,小窗显示大小由大窗真实尺寸缩放获得。 15 16**变更影响** 17 18该变更为不兼容变更。 19 20变更前: 21画中画窗口在以小窗启动时或以大窗启动时均为真实尺寸。应用基于小窗或大窗渲染自定义UI控件后,用户双击缩放至另一档位后,该自定义UI控件的视觉大小和以另一档位直接开启画中画时自定义UI控件的视觉大小不一致。 22 23变更后: 24画中画窗口尺寸统一保持为大窗的默认尺寸,小窗则由大窗依据系统规则缩放得到,自定义UI控件依据大窗尺寸进行适配后,小窗显示时自定义UI控件将与画中画窗口一同缩放。 25 26| 变更前 | 变更后 | 27|---------|---------| 28|  |  | 29 30**起始API Level** 31 32API 12 33 34**变更发生版本** 35 36从OpenHarmony 5.0.0.42 版本开始。 37 38**变更的接口/组件** 39 40使用PiPConfiguration中customUIController在画中画内容之上添加自定义控件场景。 41 42**适配指导** 43 44若应用此前依据小窗适配了自定义UI控件的大小,则可能出现小窗下控件比实际设置的尺寸偏小的问题。 45自定义控件需基于画中画窗口最大档位(真实尺寸)进行适配,其余档位中控件会跟随画中画窗口一同缩放。 46 47```ts 48@Builder 49function buildText(params: Params) { 50 Column() { 51 // 变更前 若应用基于小窗为基准适配字体大小为20 52 // Text(params.text) 53 // .fontSize(20) 54 // .fontColor(Color.Red) 55 56 // 变更后 字体大小应基于大窗真实尺寸适配,字体大小应相应调整为合适值 57 Text(params.text) 58 .fontSize(38) 59 .fontColor(Color.Red) 60 } 61 .width('100%') 62 .height('100%') 63} 64// 自定义UI控件所使用的customUIController 65class TextNodeController extends NodeController { 66 private message: string; 67 private textNode: BuilderNode<[Params]> | null = null; 68 constructor(message: string) { 69 super(); 70 this.message = message; 71 } 72 makeNode(context: UIContext): FrameNode | null { 73 this.textNode = new BuilderNode(context); 74 this.textNode.build(wrapBuilder<[Params]>(buildText), new Params(this.message)); 75 return this.textNode.getFrameNode(); 76 } 77} 78```