Popup控制
給組件綁定popup彈窗,并設置彈窗內(nèi)容,交互邏輯和顯示狀態(tài)。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。
接口
名稱 | 參數(shù)類型 | 描述 |
---|---|---|
bindPopup | show: boolean, popup: [PopupOptions] | [CustomPopupOptions]8+ |
PopupOptions類型說明
名稱 | 類型 | 必填 | 描述 |
---|---|---|---|
message | string | 是 | 彈窗信息內(nèi)容。 |
primaryButton | { value: string, action: () => void } | 否 | 第一個按鈕。 value: 彈窗里主按鈕的文本。 action: 點擊主按鈕的回調(diào)函數(shù)。 |
secondaryButton | { value: string, action: () => void } | 否 | 第二個按鈕。 value: 彈窗里輔助按鈕的文本。 action: 點擊輔助按鈕的回調(diào)函數(shù)。 |
onStateChange | (event: { isVisible: boolean }) => void | 否 | 彈窗狀態(tài)變化事件回調(diào),參數(shù)isVisible為彈窗當前的顯示狀態(tài)。 |
arrowOffset9+ | [Length] | 否 | popup箭頭在彈窗處的偏移。箭頭在氣泡上下方時,數(shù)值為0表示箭頭居最左側(cè),偏移量為箭頭至最左側(cè)的距離,默認居中。箭頭在氣泡左右側(cè)時,偏移量為箭頭至最上側(cè)的距離,默認居中。如果顯示在屏幕邊緣,氣泡會自動左右偏移,數(shù)值為0時箭頭始終指向綁定組件。 |
showInSubWindow9+ | boolean | 否 | 是否在子窗口顯示氣泡,默認值為false。 |
mask10+ | boolean | [ResourceColor] | 否 |
messageOptions10+ | [PopupMessageOptions] | 否 | 設置彈窗信息文本參數(shù)。 |
targetSpace10+ | [Length] | 否 | 設置popup與目標的間隙。 |
placement10+ | [Placement] | 否 | 設置popup組件相對于目標的顯示位置,默認值為Placement.Bottom。 |
offset10+ | [Position] | 否 | 設置popup組件相對于placement設置的顯示位置的偏移。**說明:**不支持設置百分比。 |
enableArrow10+ | boolean | 否 | 設置是否顯示箭頭。 默認值:true |
PopupMessageOptions10+類型說明
名稱 | 類型 | 必填 | 描述 |
---|---|---|---|
textColor | [ResourceColor] | 否 | 設置彈窗信息文本顏色。 |
font | [Font] | 否 | 設置彈窗信息字體屬性。 |
CustomPopupOptions8+類型說明
名稱 | 類型 | 必填 | 描述 |
---|---|---|---|
builder | [CustomBuilder] | 是 | 提示氣泡內(nèi)容的構造器。**說明:**popup為通用屬性,自定義popup中不支持再次彈出popup。對builder下的第一層容器組件不支持使用position屬性,如果使用將導致氣泡不顯示。 |
placement | [Placement] | 否 | 氣泡組件優(yōu)先顯示的位置,當前位置顯示不下時,會自動調(diào)整位置。 默認值:Placement.Bottom |
popupColor | [ResourceColor] | 否 | 提示氣泡的顏色。 默認值:'#4d4d4d' |
enableArrow | boolean | 否 | 是否顯示箭頭。 從API Version 9開始,如果箭頭所在方位側(cè)的氣泡長度不足以顯示下箭頭,則會默認不顯示箭頭。比如:placement設置為Left,此時如果氣泡高度小于箭頭的寬度(32vp)與氣泡圓角兩倍(48vp)之和(80vp),則實際不會顯示箭頭。 默認值:true |
autoCancel | boolean | 否 | 頁面有操作時,是否自動關閉氣泡。 默認值:true |
onStateChange | (event: { isVisible: boolean }) => void | 否 | 彈窗狀態(tài)變化事件回調(diào),參數(shù)為彈窗當前的顯示狀態(tài)。 |
arrowOffset9+ | [Length] | 否 | popup箭頭在彈窗處的偏移。箭頭在氣泡上下方時,數(shù)值為0表示箭頭居最左側(cè),偏移量為箭頭至最左側(cè)的距離,默認居中。箭頭在氣泡左右側(cè)時,偏移量為箭頭至最上側(cè)的距離,默認居中。如果顯示在屏幕邊緣,氣泡會自動左右偏移,數(shù)值為0時箭頭始終指向綁定組件。 |
showInSubWindow9+ | boolean | 否 | 是否在子窗口顯示氣泡,默認值為false。 |
mask10+ | boolean | [ResourceColor] | 否 |
targetSpace10+ | [Length] | 否 | 設置popup與目標的間隙。 |
offset10+ | [Position] | 否 | 設置popup組件相對于placement設置的顯示位置的偏移。**說明:**不支持設置百分比。 |
示例
示例1
// xxx.ets
@Entry
@Component
struct PopupExample {
@State handlePopup: boolean = false
@State customPopup: boolean = false
// popup構造器定義彈框內(nèi)容
@Builder popupBuilder() {
Row({ space: 2 }) {
Image($r("app.media.image")).width(24).height(24).margin({ left: -5 })
Text('Custom Popup').fontSize(10)
}.width(100).height(50).padding(5)
}
build() {
Flex({ direction: FlexDirection.Column }) {
// PopupOptions 類型設置彈框內(nèi)容
Button('PopupOptions')
.onClick(() = > {
this.handlePopup = !this.handlePopup
})
.bindPopup(this.handlePopup, {
message: 'This is a popup with PopupOptions',
showInSubWindow:false,
primaryButton: {
value: 'confirm',
action: () = > {
this.handlePopup = !this.handlePopup
console.info('confirm Button click')
}
},
// 第二個按鈕
secondaryButton: {
value: 'cancel',
action: () = > {
this.handlePopup = !this.handlePopup
console.info('cancel Button click')
}
},
onStateChange: (e) = > {
console.info(JSON.stringify(e.isVisible))
if (!e.isVisible) {
this.handlePopup = false
}
}
})
.position({ x: 100, y: 50 })
// CustomPopupOptions 類型設置彈框內(nèi)容
Button('CustomPopupOptions')
.onClick(() = > {
this.customPopup = !this.customPopup
})
.bindPopup(this.customPopup, {
builder: this.popupBuilder,
placement: Placement.Top,
mask: {color:'0x33000000'},
popupColor: Color.Yellow,
enableArrow: true,
showInSubWindow: false,
onStateChange: (e) = > {
if (!e.isVisible) {
this.customPopup = false
}
}
})
.position({ x: 80, y: 200 })
}.width('100%').padding({ top: 5 })
}
}
示例2
// xxx.ets
@Entry
@Component
struct PopupExample {
@State handlePopup: boolean = false
build() {
Column() {
Button('PopupOptions')
.onClick(() = > {
this.handlePopup = !this.handlePopup
})
.bindPopup(this.handlePopup, {
message: 'This is a popup with PopupOptions',
messageOptions: {
textColor: Color.Red,
font: {
size: '14vp',
style: FontStyle.Italic,
weight: FontWeight.Bolder
}
},
placement: Placement.Bottom,
enableArrow: false,
targetSpace: '15vp',
onStateChange: (e) = > {
console.info(JSON.stringify(e.isVisible))
if (!e.isVisible) {
this.handlePopup = false
}
}
})
}.margin(20)
}
}
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
示例3
// xxx.ets
@Entry
@Component
struct PopupExample {
@State customPopup: boolean = false
// popup構造器定義彈框內(nèi)容
@Builder popupBuilder() {
Row() {
Text('Custom Popup Message').fontSize(10)
}.height(50).padding(5)
}
build() {
Column() {
// CustomPopupOptions 類型設置彈框內(nèi)容
Button('CustomPopupOptions')
.onClick(() = > {
this.customPopup = !this.customPopup
})
.bindPopup(this.customPopup, {
builder: this.popupBuilder,
targetSpace: '15vp',
enableArrow: false,
onStateChange: (e) = > {
if (!e.isVisible) {
this.customPopup = false
}
}
})
}.margin(20)
}
}
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
Popup
+關注
關注
0文章
5瀏覽量
1329 -
鴻蒙
+關注
關注
57文章
2352瀏覽量
42859
發(fā)布評論請先 登錄
相關推薦
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【圖片邊框設置】 通用屬性
從API Version 9開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。
HarmonyOS/OpenHarmony應用開發(fā)-ArkTS的聲明式開發(fā)范式
基于ArkTS的聲明式開發(fā)范式的方舟開發(fā)框架是一套開發(fā)極簡、高性能、
發(fā)表于 01-17 15:09
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【按鍵事件】
按鍵事件指組件與鍵盤、遙控器等按鍵設備交互時觸發(fā)的事件,適用于所有可獲焦組件,例如Button。對于Text,Image等默認不可獲焦的組件,可以設置focusable屬性為true后使用按鍵事件。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【透明度設置】 通用屬性
從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【顯隱控制】 通用屬性
控制當前組件顯示或隱藏。注意,即使組件處于隱藏狀態(tài),在頁面刷新時仍存在重新創(chuàng)建過程,因此當對性能有嚴格要求時建議使用[條件渲染]代替。 默認值:Visibility.Visible 從API version 9開始,該接口支持在ArkT
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【形狀裁剪】 通用屬性
參數(shù)為相應類型的組件,按指定的形狀對當前組件進行裁剪;參數(shù)為boolean類型時,設置是否按照父容器邊緣輪廓進行裁剪。 默認值:false 從API version 9開始,該接口支持在ArkTS卡片中使用。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【組件標識】 通用屬性
id為組件的唯一標識,在整個應用內(nèi)唯一。本模塊提供組件標識相關接口,可以獲取指定id組件的屬性,也提供向指定id組件發(fā)送事件的功能。
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【分布式遷移標識】 通用屬性
組件的分布式遷移標識,指明了該組件在分布式遷移場景下可以將特定狀態(tài)恢復到對端設備。
評論