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| ![](figures/pipbefore.jpg) | ![](figures/pipafter.jpg) |
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```