List
列表包含一系列相同寬度的列表項(xiàng)。適合連續(xù)、多行呈現(xiàn)同類數(shù)據(jù),例如圖片和文本。
說(shuō)明:
開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
- 該組件從API Version 7開(kāi)始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
- 該組件回彈的前提是要有滾動(dòng)。內(nèi)容小于一屏?xí)r,沒(méi)有回彈效果。
子組件
僅支持[ListItem]、[ListItemGroup]子組件。
說(shuō)明:
List的子組件的索引值計(jì)算規(guī)則:
按子組件的順序依次遞增。
if/else語(yǔ)句中,只有條件成立的分支內(nèi)的子組件會(huì)參與索引值計(jì)算,條件不成立的分支內(nèi)子組件不計(jì)算索引值。
ForEach/LazyForEach語(yǔ)句中,會(huì)計(jì)算展開(kāi)所有子節(jié)點(diǎn)索引值。
[if/else]、[ForEach]和[LazyForEach]發(fā)生變化以后,會(huì)更新子節(jié)點(diǎn)索引值。
ListItemGroup作為一個(gè)整體計(jì)算一個(gè)索引值,ListItemGroup內(nèi)部的ListItem不計(jì)算索引值。
List子組件visibility屬性設(shè)置為Hidden或None依然會(huì)計(jì)算索引值。
List子組件的visibility屬性設(shè)置為None時(shí)不顯示,但該子組件上下的space還會(huì)生效。
接口
List(value?:{space?: number | string, initialIndex?: number, scroller?: Scroller})
從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。
參數(shù)名 | 參數(shù)類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
space | number | string | 否 |
initialIndex | number | 否 | 設(shè)置當(dāng)前List初次加載時(shí)視口起始位置顯示的item的索引值。 默認(rèn)值:0**說(shuō)明:**設(shè)置為負(fù)數(shù)或超過(guò)了當(dāng)前List最后一個(gè)item的索引值時(shí)視為無(wú)效取值,無(wú)效取值按默認(rèn)值顯示。 |
scroller | [Scroller] | 否 | 可滾動(dòng)組件的控制器。用于與可滾動(dòng)組件進(jìn)行綁定。**說(shuō)明:**不允許和其他滾動(dòng)類組件綁定同一個(gè)滾動(dòng)控制對(duì)象。 |
屬性
除支持[通用屬性]外,還支持以下屬性:
名稱 | 參數(shù)類型 | 描述 |
---|---|---|
listDirection | [Axis] | 設(shè)置List組件排列方向。 默認(rèn)值:Axis.Vertical 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。 |
divider | { strokeWidth: [Length], color?:[ResourceColor], startMargin?: Length, endMargin?: Length } | null |
scrollBar | [BarState] | 設(shè)置滾動(dòng)條狀態(tài)。 默認(rèn)值:BarState.Off 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。**說(shuō)明:**API version 9及以下版本默認(rèn)值為BarState.Off,API version 10的默認(rèn)值為BarState.Auto。 |
cachedCount | number | 設(shè)置列表中ListItem/ListItemGroup的預(yù)加載數(shù)量,只在[LazyForEach]中生效,其中ListItemGroup將作為一個(gè)整體進(jìn)行計(jì)算,ListItemGroup中的所有ListItem會(huì)一次性全部加載出來(lái)。具體使用可參考[減少應(yīng)用白塊說(shuō)明]。 默認(rèn)值:1 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。**說(shuō)明:**單列模式下,會(huì)在List顯示的ListItem前后各緩存cachedCount個(gè)ListItem。 多列模式下, 會(huì)在List顯示的ListItem前后各緩存cachedCount*列數(shù)個(gè)ListItem。 |
edgeEffect | [EdgeEffect] | 設(shè)置組件的滑動(dòng)效果,支持彈簧效果和陰影效果。 默認(rèn)值:EdgeEffect.Spring 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。 |
chainAnimation | boolean | 設(shè)置當(dāng)前List是否啟用鏈?zhǔn)铰?lián)動(dòng)動(dòng)效,開(kāi)啟后列表滑動(dòng)以及頂部和底部拖拽時(shí)會(huì)有鏈?zhǔn)铰?lián)動(dòng)的效果。鏈?zhǔn)铰?lián)動(dòng)效果:List內(nèi)的list-item間隔一定距離,在基本的滑動(dòng)交互行為下,主動(dòng)對(duì)象驅(qū)動(dòng)從動(dòng)對(duì)象進(jìn)行聯(lián)動(dòng),驅(qū)動(dòng)效果遵循彈簧物理動(dòng)效。 默認(rèn)值:false - false:不啟用鏈?zhǔn)铰?lián)動(dòng)。 - true:?jiǎn)⒂面準(zhǔn)铰?lián)動(dòng)。 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。**說(shuō)明:**鏈?zhǔn)絼?dòng)效生效后,List的分割線不顯示。 鏈?zhǔn)絼?dòng)效生效需要滿足以下前提條件: - List邊緣效果為Spring類型 - List沒(méi)有啟用多列模式 |
multiSelectable8+ | boolean | 是否開(kāi)啟鼠標(biāo)框選。 默認(rèn)值:false - false:關(guān)閉框選。 - true:開(kāi)啟框選。 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。 |
lanes9+ | number | [LengthConstrain], gutter10+?:[Dimension] |
alignListItem9+ | [ListItemAlign] | List交叉軸方向?qū)挾却笥贚istItem交叉軸寬度 * lanes時(shí),ListItem在List交叉軸方向的布局方式,默認(rèn)為首部對(duì)齊。 默認(rèn)值:ListItemAlign.Start 該接口支持在ArkTS卡片中使用。 |
sticky9+ | [StickyStyle] | 配合[ListItemGroup]組件使用,設(shè)置ListItemGroup中header和footer是否要吸頂或吸底。 默認(rèn)值:StickyStyle.None 該接口支持在ArkTS卡片中使用。**說(shuō)明:**sticky屬性可以設(shè)置為 StickyStyle.Header |
scrollSnapAlign10+ | [ScrollSnapAlign] | 設(shè)置列表項(xiàng)滾動(dòng)結(jié)束對(duì)齊效果。 默認(rèn)值:ScrollSnapAlign.NONE**說(shuō)明:**只支持ListItem等高情況下,設(shè)置列表項(xiàng)滾動(dòng)結(jié)束對(duì)齊效果。 |
enableScrollInteraction10+ | boolean | 設(shè)置是否支持滾動(dòng)手勢(shì),當(dāng)設(shè)置為false時(shí),無(wú)法通過(guò)手指或者鼠標(biāo)滾動(dòng),但不影響控制器的滾動(dòng)接口。 默認(rèn)值:true |
nestedScroll10+ | [NestedScrollOptions] | 嵌套滾動(dòng)選項(xiàng)。設(shè)置向前向后兩個(gè)方向上的嵌套滾動(dòng)模式,實(shí)現(xiàn)與父組件的滾動(dòng)聯(lián)動(dòng)。 |
friction10+ | number | [Resource] |
ListItemAlign9+枚舉說(shuō)明
該接口支持在ArkTS卡片中使用。
名稱 | 描述 |
---|---|
Start | ListItem在List中,交叉軸方向首部對(duì)齊。 |
Center | ListItem在List中,交叉軸方向居中對(duì)齊。 |
End | ListItem在List中,交叉軸方向尾部對(duì)齊。 |
StickyStyle9+枚舉說(shuō)明
該接口支持在ArkTS卡片中使用。
名稱 | 描述 |
---|---|
None | ListItemGroup的header不吸頂,footer不吸底。 |
Header | ListItemGroup的header吸頂,footer不吸底。 |
Footer | ListItemGroup的footer吸底,header不吸底。 |
說(shuō)明:
List組件[通用屬性clip]的默認(rèn)值為true。
ScrollSnapAlign10+枚舉說(shuō)明
設(shè)置列表項(xiàng)滾動(dòng)結(jié)束對(duì)齊效果。
從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。
左右和上下這種兩端對(duì)齊的樣式:當(dāng)列表位移至末端,則需要將末端的item完整顯示,同時(shí)不能露出邊界空白區(qū)域,此時(shí)另一端可以出現(xiàn)不限位對(duì)齊的現(xiàn)象。
只支持item等高場(chǎng)景限位,不等高場(chǎng)景可能存在不準(zhǔn)確的情況。
名稱 | 描述 |
---|---|
NONE | 默認(rèn)無(wú)項(xiàng)目滾動(dòng)對(duì)齊效果。滾動(dòng)結(jié)束列表項(xiàng)何時(shí)將無(wú)限制地停止。 |
START | 視圖中的第一項(xiàng)將在列表的開(kāi)頭對(duì)齊。**說(shuō)明:**當(dāng)列表位移至末端,需要將末端的item完整顯示,可能出現(xiàn)開(kāi)頭不對(duì)齊的情況。 |
CENTER | 視圖中的中間項(xiàng)將在列表中心對(duì)齊。**說(shuō)明:**頂端和末尾的item都可以在列表中心對(duì)齊,列表顯示可能露出空白,第一個(gè)或最后一個(gè)item會(huì)對(duì)齊到中間位置。 |
END | 視圖中的最后一項(xiàng)將在列表末尾對(duì)齊。**說(shuō)明:**當(dāng)列表位移至頂端,需要將頂端的item完整顯示,可能出現(xiàn)末尾不對(duì)齊的情況。 |
事件
名稱 | 功能描述 |
---|---|
onScroll(event: (scrollOffset: number, scrollState: ScrollState) => void) | 列表滑動(dòng)時(shí)觸發(fā)。 - scrollOffset: 每幀滾動(dòng)的偏移量,List的內(nèi)容向上滾動(dòng)時(shí)偏移量為正,向下滾動(dòng)時(shí)偏移量為負(fù)。 - [scrollState]: 當(dāng)前滑動(dòng)狀態(tài)。 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。 |
onScrollIndex(event: (start: number, end: number, center10+: number) => void) | 有子組件劃入或劃出List顯示區(qū)域時(shí)觸發(fā)。從API version 10開(kāi)始,List顯示區(qū)域中間位置子組件變化時(shí)也會(huì)觸發(fā)。 計(jì)算索引值時(shí),ListItemGroup作為一個(gè)整體占一個(gè)索引值,不計(jì)算ListItemGroup內(nèi)部ListItem的索引值。 - start: List顯示區(qū)域內(nèi)第一個(gè)子組件的索引值。 - end: List顯示區(qū)域內(nèi)最后一個(gè)子組件的索引值。 - center: List顯示區(qū)域內(nèi)中間位置子組件的索引值。 觸發(fā)該事件的條件:列表初始化時(shí)會(huì)觸發(fā)一次,List顯示區(qū)域內(nèi)第一個(gè)子組件的索引值或最后一個(gè)子組件的索引值有變化時(shí)會(huì)觸發(fā)。從API version 10開(kāi)始,List顯示區(qū)域中間位置子組件變化時(shí)也會(huì)觸發(fā)。 List的邊緣效果為彈簧效果時(shí),在List劃動(dòng)到邊緣繼續(xù)劃動(dòng)和松手回彈過(guò)程不會(huì)觸發(fā)onScrollIndex事件。 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。 |
onReachStart(event: () => void) | 列表到達(dá)起始位置時(shí)觸發(fā)。 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。**說(shuō)明:**List初始化時(shí)如果initialIndex為0會(huì)觸發(fā)一次,List滾動(dòng)到起始位置時(shí)觸發(fā)一次。List邊緣效果為彈簧效果時(shí),劃動(dòng)經(jīng)過(guò)起始位置時(shí)觸發(fā)一次,回彈回起始位置時(shí)再觸發(fā)一次。 |
onReachEnd(event: () => void) | 列表到底末尾位置時(shí)觸發(fā)。 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。**說(shuō)明:**List邊緣效果為彈簧效果時(shí),劃動(dòng)經(jīng)過(guò)末尾位置時(shí)觸發(fā)一次,回彈回末尾位置時(shí)再觸發(fā)一次。 |
onScrollFrameBegin9+(event: (offset: number, state: ScrollState) => { offsetRemain }) | 列表開(kāi)始滑動(dòng)時(shí)觸發(fā),事件參數(shù)傳入即將發(fā)生的滑動(dòng)量,事件處理函數(shù)中可根據(jù)應(yīng)用場(chǎng)景計(jì)算實(shí)際需要的滑動(dòng)量并作為事件處理函數(shù)的返回值返回,列表將按照返回值的實(shí)際滑動(dòng)量進(jìn)行滑動(dòng)。 - offset:即將發(fā)生的滑動(dòng)量,單位vp。 - state:當(dāng)前滑動(dòng)狀態(tài)。 - offsetRemain:實(shí)際滑動(dòng)量,單位vp。 觸發(fā)該事件的條件:手指拖動(dòng)List、List慣性劃動(dòng)時(shí)每幀開(kāi)始時(shí)觸發(fā);List超出邊緣回彈、使用滾動(dòng)控制器的滾動(dòng)不會(huì)觸發(fā)。 該接口支持在ArkTS卡片中使用。**說(shuō)明:**當(dāng)listDirection的值為Axis.Vertical時(shí),返回垂直方向滑動(dòng)量,當(dāng)listDirection的值為Axis.Horizontal時(shí),返回水平方向滑動(dòng)量。 |
onScrollStart9+(event: () => void) | 列表滑動(dòng)開(kāi)始時(shí)觸發(fā)。手指拖動(dòng)列表或列表的滾動(dòng)條觸發(fā)的滑動(dòng)開(kāi)始時(shí),會(huì)觸發(fā)該事件。使用[Scroller]滑動(dòng)控制器觸發(fā)的帶動(dòng)畫的滑動(dòng),動(dòng)畫開(kāi)始時(shí)會(huì)觸發(fā)該事件。 該接口支持在ArkTS卡片中使用。 |
onScrollStop(event: () => void) | 列表滑動(dòng)停止時(shí)觸發(fā)。手拖動(dòng)列表或列表的滾動(dòng)條觸發(fā)的滑動(dòng),手離開(kāi)屏幕并且滑動(dòng)停止時(shí)會(huì)觸發(fā)該事件;使用[Scroller]滑動(dòng)控制器觸發(fā)的帶動(dòng)畫的滑動(dòng),動(dòng)畫停止會(huì)觸發(fā)該事件。 從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。 |
onItemMove(event: (from: number, to: number) => boolean) | 列表元素發(fā)生移動(dòng)時(shí)觸發(fā)。 - from: 移動(dòng)前索引值。 - to: 移動(dòng)后索引值。 |
onItemDragStart(event: (event: ItemDragInfo, itemIndex: number) => ((() => any) | void) |
onItemDragEnter(event: (event: ItemDragInfo) => void) | 拖拽進(jìn)入列表元素范圍內(nèi)時(shí)觸發(fā)。 - event: 見(jiàn)[ItemDragInfo對(duì)象說(shuō)明]。 |
onItemDragMove(event: (event: ItemDragInfo, itemIndex: number, insertIndex: number) => void) | 拖拽在列表元素范圍內(nèi)移動(dòng)時(shí)觸發(fā)。 - event: 見(jiàn)[ItemDragInfo對(duì)象說(shuō)明]。 - itemIndex: 拖拽起始位置。 - insertIndex: 拖拽插入位置。 |
onItemDragLeave(event: (event: ItemDragInfo, itemIndex: number) => void) | 拖拽離開(kāi)列表元素時(shí)觸發(fā)。 - event: 見(jiàn)[ItemDragInfo對(duì)象說(shuō)明]。 - itemIndex: 拖拽離開(kāi)的列表元素索引值。 |
onItemDrop(event: (event: ItemDragInfo, itemIndex: number, insertIndex: number, isSuccess: boolean) => void) | 綁定該事件的列表元素可作為拖拽釋放目標(biāo),當(dāng)在列表元素內(nèi)停止拖拽時(shí)觸發(fā)。 - event: 見(jiàn)[ItemDragInfo對(duì)象說(shuō)明]。 - itemIndex: 拖拽起始位置。 - insertIndex: 拖拽插入位置。 - isSuccess: 是否成功釋放。**說(shuō)明:**跨List拖拽時(shí),當(dāng)拖拽釋放的位置綁定了onItemDrop時(shí)會(huì)返回true,否則為false。List內(nèi)部拖拽時(shí),isSuccess為onItemMove事件的返回值。 |
ScrollState枚舉說(shuō)明
從API version 9開(kāi)始,該接口支持在ArkTS卡片中使用。
名稱 | 描述 |
---|---|
Idle | 空閑狀態(tài)。使用控制器提供的方法控制滾動(dòng)時(shí)觸發(fā),拖動(dòng)滾動(dòng)條滾動(dòng)時(shí)觸發(fā)。**說(shuō)明:**從API version 10開(kāi)始,調(diào)整為滾動(dòng)狀態(tài)回歸空閑時(shí)觸發(fā),控制器提供的無(wú)動(dòng)畫方法控制滾動(dòng)時(shí)觸發(fā)。 |
Scroll | 滾動(dòng)狀態(tài)。使用手指拖動(dòng)List滾動(dòng)時(shí)觸發(fā)。**說(shuō)明:**從API version 10開(kāi)始,拖動(dòng)滾動(dòng)條滾動(dòng)和滾動(dòng)鼠標(biāo)滾輪時(shí)也會(huì)觸發(fā)。 |
Fling | 慣性滾動(dòng)狀態(tài)。快速劃動(dòng)松手后進(jìn)行慣性滾動(dòng)和劃動(dòng)到邊緣回彈時(shí)觸發(fā)。**說(shuō)明:**從API version 10開(kāi)始,由動(dòng)畫控制的滾動(dòng)都觸發(fā)。包括快速劃動(dòng)松手后的慣性滾動(dòng),劃動(dòng)到邊緣回彈的滾動(dòng),快速拖動(dòng)內(nèi)置滾動(dòng)條松手后的慣性滾動(dòng),使用滾動(dòng)控制器提供的帶動(dòng)畫的方法控制的滾動(dòng)。 |
ScrollState枚舉變更如下。
場(chǎng)景 | API version 9及以下 | API version 10開(kāi)始 |
---|---|---|
手指拖動(dòng)滑動(dòng) | Scroll | Scroll |
慣性滾動(dòng) | Fling | Fling |
過(guò)界回彈 | Fling | Fling |
鼠標(biāo)滾輪滾動(dòng) | Idle | Scroll |
拖動(dòng)滾動(dòng)條 | Idle | Scroll |
滾動(dòng)控制器滾動(dòng)(帶動(dòng)畫) | Idle | Fling |
滾動(dòng)控制器滾動(dòng)(不帶動(dòng)畫) | Idle | Idle |
說(shuō)明:
要使List處于可編輯模式需配合onItemDelete事件和ListItem的editable屬性,即可編輯模式實(shí)現(xiàn)刪除列表項(xiàng)功能,需滿足以下條件(該功能從API9開(kāi)始廢棄):
- editMode屬性設(shè)置為true。
- 綁定onItemDelete事件,且事件回調(diào)返回true。
- ListItem的editable屬性設(shè)置為true。
實(shí)現(xiàn)ListItem拖拽,需滿足以下條件:
- editMode屬性設(shè)置為true(從API9開(kāi)始無(wú)需設(shè)置editMode屬性)。
- 綁定onDragStart事件,且事件回調(diào)中返回浮動(dòng)UI布局。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
示例
示例1
// xxx.ets
@Entry
@Component
struct ListExample {
private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
build() {
Column() {
List({ space: 20, initialIndex: 0 }) {
ForEach(this.arr, (item: number) = > {
ListItem() {
Text('' + item)
.width('100%').height(100).fontSize(16)
.textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF)
}
}, (item: string) = > item)
}
.listDirection(Axis.Vertical) // 排列方向
.scrollBar(BarState.Off)
.friction(0.6)
.divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // 每行之間的分界線
.edgeEffect(EdgeEffect.Spring) // 邊緣效果設(shè)置為Spring
.onScrollIndex((firstIndex: number, lastIndex: number, centerIndex: number) = > {
console.info('first' + firstIndex)
console.info('last' + lastIndex)
console.info('center' + centerIndex)
})
.onScroll((scrollOffset: number, scrollState: ScrollState) = > {
console.info(`onScroll scrollState = ScrollState` + scrollState + `, scrollOffset = ` + scrollOffset)
})
.width('90%')
}
.width('100%')
.height('100%')
.backgroundColor(0xDCDCDC)
.padding({ top: 5 })
}
}
示例2
// xxx.ets
@Entry
@Component
struct ListLanesExample {
@State arr: string[] = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"]
@State alignListItem: ListItemAlign = ListItemAlign.Start
build() {
Column() {
List({ space: 20, initialIndex: 0 }) {
ForEach(this.arr, (item: string) = > {
ListItem() {
Text('' + item)
.width('100%')
.height(100)
.fontSize(16)
.textAlign(TextAlign.Center)
.borderRadius(10)
.backgroundColor(0xFFFFFF)
}
.border({ width: 2, color: Color.Green })
}, (item: string) = > item)
}
.height(300)
.width("90%")
.friction(0.6)
.border({ width: 3, color: Color.Red })
.lanes({ minLength: 40, maxLength: 40 })
.alignListItem(this.alignListItem)
.scrollBar(BarState.Off)
Button("點(diǎn)擊更改alignListItem:" + this.alignListItem).onClick(() = > {
if (this.alignListItem == ListItemAlign.Start) {
this.alignListItem = ListItemAlign.Center
} else if (this.alignListItem == ListItemAlign.Center) {
this.alignListItem = ListItemAlign.End
} else {
this.alignListItem = ListItemAlign.Start
}
})
}.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })
}
}
示例3
// xxx.ets
@Entry
@Component
struct ListExample {
@State arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
@State editFlag: boolean = false
build() {
Stack({ alignContent: Alignment.TopStart }) {
Column() {
List({ space: 20, initialIndex: 0 }) {
ForEach(this.arr, (item: number, index?: number) = > {
ListItem() {
Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center }) {
Text('' + item)
.width('100%')
.height(80)
.fontSize(20)
.textAlign(TextAlign.Center)
.borderRadius(10)
.backgroundColor(0xFFFFFF)
.flexShrink(1)
if (this.editFlag) {
Button() {
Text("delete").fontSize(16)
}.width('30%').height(40)
.onClick(() = > {
if (index != undefined) {
console.info(this.arr[index] + 'Delete')
this.arr.splice(index, 1)
console.info(JSON.stringify(this.arr))
this.editFlag = false
}
}).stateEffect(true)
}
}
}
}, (item: string) = > item)
}.width('90%')
.scrollBar(BarState.Off)
.friction(0.6)
}.width('100%')
Button('edit list')
.onClick(() = > {
this.editFlag = !this.editFlag
}).margin({ top: 5, left: 20 })
}.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })
}
}
審核編輯 黃宇
-
組件
+關(guān)注
關(guān)注
1文章
515瀏覽量
17882 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2388瀏覽量
42962
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論