這篇文章給大家分享的是AlertDialog實(shí)現(xiàn)不同風(fēng)格的2次確認(rèn)提示框的方法,相信大部分人都還沒(méi)學(xué)會(huì)這個(gè)技能,為了讓大家學(xué)會(huì),給大家總結(jié)了以下內(nèi)容,話不多說(shuō),一起往下看吧。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括馬村網(wǎng)站建設(shè)、馬村網(wǎng)站制作、馬村網(wǎng)頁(yè)制作以及馬村網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,馬村網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到馬村省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!Flutter版本及Dart版本如下:
1.12.13+hotfix.5Dart版本: 2.7.0
當(dāng)應(yīng)用程序進(jìn)行重要操作時(shí)經(jīng)常需要用戶進(jìn)行2次確認(rèn),以避免用戶的誤操作,比如刪除文件時(shí),一般會(huì)彈出提示“是否要?jiǎng)h除當(dāng)前文件”,用戶點(diǎn)擊確認(rèn)后才會(huì)進(jìn)行刪除操作,這時(shí)我們可以使用提示框(AlertDialog或者CupertinoAlertDialog)。
根據(jù)設(shè)計(jì)的不同,我們可以選擇Material風(fēng)格的AlertDialog或者Cupertino(ios)風(fēng)格的CupertinoAlertDialog,
Material風(fēng)格基礎(chǔ)用法如下:
RaisedButton(
child: Text('切換'),
onPressed: () {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text('提示'),
content: Text('確認(rèn)刪除嗎?'),
actions: [
FlatButton(child: Text('取消'),onPressed: (){},),
FlatButton(child: Text('確認(rèn)'),onPressed: (){},),
],
);
});
},
)
Material風(fēng)格效果:
Cupertino(ios)風(fēng)格基礎(chǔ)用法如下:
RaisedButton(
child: Text('切換'),
onPressed: () {
showCupertinoDialog(
context: context,
builder: (context) {
return CupertinoAlertDialog(
title: Text('提示'),
content: Text('確認(rèn)刪除嗎?'),
actions: [
CupertinoDialogAction(child: Text('取消'),onPressed: (){},),
CupertinoDialogAction(child: Text('確認(rèn)'),onPressed: (){},),
],
);
});
},
)
Cupertino(ios)風(fēng)格效果如下:
showDialog
和AlertDialog
配合使用展示Material風(fēng)格對(duì)話框,showCupertinoDialog
和CupertinoAlertDialog
配合使用展示iOS風(fēng)格對(duì)話框,showCupertinoDialog
點(diǎn)擊空白處是無(wú)法退出對(duì)話框的,而showDialog
點(diǎn)擊空白處默認(rèn)退出對(duì)話框,barrierDismissible
屬性控制點(diǎn)擊空白處的行為,用法如下:
showDialog(
barrierDismissible: false,
)
AlertDialog的屬性相對(duì)比較豐富,可以設(shè)置title樣式、content樣式、背景顏色、陰影值,設(shè)置是形狀:
AlertDialog(
title: Text('提示'),
content: Text('確認(rèn)刪除嗎?'),
backgroundColor: Colors.lightBlueAccent,
elevation: 24,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(50)),
actions: [
FlatButton(child: Text('取消'),onPressed: (){},),
FlatButton(child: Text('確認(rèn)'),onPressed: (){},),
],
)
用戶點(diǎn)擊“取消”或者“確定”按鈕后退出對(duì)話框,App需要知道知道用戶選擇了哪個(gè)選項(xiàng),用法如下:
RaisedButton(
child: Text('切換'),
onPressed: () async {
var result = await showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text('提示'),
content: Text('確認(rèn)刪除嗎?'),
actions: [
FlatButton(
child: Text('取消'),
onPressed: () {
Navigator.of(context).pop('cancel');
},
),
FlatButton(
child: Text('確認(rèn)'),
onPressed: () {
Navigator.of(context).pop('ok');
},
),
],
);
});
print('$result');
},
)
如果你覺(jué)得系統(tǒng)提供的這2個(gè)風(fēng)格的對(duì)話框不夠個(gè)性,你可以試試SimpleDialog,用法和AlertDialog基本相同,如下:
SimpleDialog(
title: Text('提示'),
children: [
Container(
height: 80,
alignment: Alignment.center,
child: Text('確認(rèn)刪除嗎?'),
),
Divider(height: 1,),
FlatButton(
child: Text('取消'),
onPressed: () {
Navigator.of(context).pop('cancel');
},
),
Divider(height: 1,),
FlatButton(
child: Text('確認(rèn)'),
onPressed: () {
Navigator.of(context).pop('ok');
},
),
],
)
效果如下:
如果你覺(jué)得這還是不夠個(gè)性,那可以祭出終極大法了,直接使用Dialog,Dialog可以定制任何對(duì)話框,只需將對(duì)話框的內(nèi)容給child屬性:
Dialog(
child: MyDialog(),
);
當(dāng)然一般情況下,系統(tǒng)提供的對(duì)話框就夠用了,這幾個(gè)對(duì)話框組件用法基本一樣,不同的地方僅僅是靈活性和使用簡(jiǎn)易程度的不要,Dialog最靈活,但使用起來(lái)比AlertDialog復(fù)雜一些,AlertDialog使用起來(lái)非常簡(jiǎn)單,但布局和基本樣式都已經(jīng)固定好,不如Dialog靈活。
以上就是AlertDialog實(shí)現(xiàn)不同風(fēng)格的2次確認(rèn)提示框的方法,代碼示例簡(jiǎn)單明了,如果在日常工作遇到此問(wèn)題。通過(guò)這篇文章,希望你能有所收獲,更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。