• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @system.mediaquery (媒体查询)
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @zju_ljz-->
5<!--Designer: @lanshouren-->
6<!--Tester: @liuli0427-->
7<!--Adviser: @HelloCrease-->
8
9提供根据不同媒体类型定义不同的样式。
10
11
12> **说明:**
13>
14> - 从API Version 7 开始,该接口不再维护,推荐使用新接口[`@ohos.mediaquery`](js-apis-mediaquery.md)。
15> - 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
16
17
18## 导入模块
19
20
21```ts
22import mediaquery from '@system.mediaquery';
23```
24
25
26## mediaquery.matchMedia
27
28matchMedia(condition: string): MediaQueryList
29
30根据媒体查询条件,创建MediaQueryList对象。
31
32**系统能力:** SystemCapability.ArkUI.ArkUI.Full
33
34**参数:**
35
36| 参数名       | 类型     | 必填   | 说明       |
37| --------- | ------ | ---- | -------- |
38| condition | string | 是    | 用于查询的条件。 |
39
40**返回值:**
41
42| 参数类型           | 说明                                       |
43| -------------- | ---------------------------------------- |
44| MediaQueryList | 表示创建MediaQueryList对象的属性,详情见下表 MediaQueryList说明。 |
45
46**示例:**
47
48```ts
49let mMediaQueryList = mediaquery.matchMedia('(max-width: 466)');
50```
51
52## MediaQueryEvent
53
54定义MediaQuery事件。
55
56**系统能力:** SystemCapability.ArkUI.ArkUI.Full
57
58| 名称      | 类型    | 必填   | 说明    |
59| ------- | ------- | ---- | ----- |
60| matches | boolean | 是    | 匹配结果。true表示满足查询条件,false表示不满足查询条件。 |
61
62## MediaQueryList
63
64定义MediaQuery列表信息。
65
66### 属性
67
68**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full
69
70| 名称      | 类型    | 必填   | 说明                |
71| ------- | ------- | ---- | ----------------- |
72| media   | string  | 否    | 序列化媒体查询条件,该参数为只读。 |
73| matches | boolean | 是    | 匹配结果。 true表示满足查询条件,false表示不满足查询条件。            |
74
75### onchange
76
77onchange?: (matches: boolean) => void
78
79matches状态变化时的执行函数。
80
81**系统能力:** SystemCapability.ArkUI.ArkUI.Full
82
83**参数:**
84
85| 参数名     | 类型      | 必填   | 说明             |
86| ------- | ------- | ---- | -------------- |
87| matches | boolean | 是    | matches状态变化时值。true表示满足查询条件,false表示不满足查询条件。 |
88
89
90### MediaQueryList.addListener
91
92addListener(callback: (event: MediaQueryEvent) => void): void
93
94给MediaQueryList添加回调函数,回调函数应在onShow生命周期之前添加,即需要在onInit或onReady生命周期里添加。
95
96**系统能力:** SystemCapability.ArkUI.ArkUI.Full
97
98**参数:**
99
100| 参数名      | 类型                               | 必填   | 说明             |
101| -------- | -------------------------------- | ---- | -------------- |
102| callback | (event: MediaQueryEvent) => void | 是    | 匹配条件发生变化的响应函数。 |
103
104**示例:**
105
106```ts
107import mediaquery, { MediaQueryEvent } from '@system.mediaquery';
108let mMediaQueryList = mediaquery.matchMedia('(max-width: 466)');
109
110function maxWidthMatch(e: MediaQueryEvent): void {
111  if(e.matches){
112    // do something
113  }
114}
115mMediaQueryList.addListener(maxWidthMatch);
116```
117
118
119### MediaQueryList.removeListener
120
121removeListener(callback: (event: MediaQueryEvent) => void): void
122
123移除MediaQueryList中的回调函数。
124
125**系统能力:** SystemCapability.ArkUI.ArkUI.Full
126
127**参数:**
128
129| 参数名      | 类型                                | 必填   | 说明             |
130| -------- | --------------------------------- | ---- | -------------- |
131| callback | (event: MediaQueryEvent) => void) | 是    | 匹配条件发生变化的响应函数。 |
132
133**示例:**
134
135```ts
136import mediaquery, { MediaQueryEvent } from '@system.mediaquery';
137let mMediaQueryList = mediaquery.matchMedia('(max-width: 466)');
138
139function maxWidthMatch(e: MediaQueryEvent): void {
140  if(e.matches){
141    // do something
142  }
143}
144mMediaQueryList.removeListener(maxWidthMatch);
145```