自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

知識(shí)分享—在頁(yè)面跳轉(zhuǎn)中附加對(duì)話框

系統(tǒng) OpenHarmony
本次的知識(shí)分享以一個(gè)簡(jiǎn)單的Demo為例,向大家展示如何在頁(yè)面跳轉(zhuǎn)中恰當(dāng)?shù)卮┎錍ommonDialog組件。話不多說(shuō),發(fā)車(chē)吧!

??想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://ost.51cto.com??

前言

之前在社區(qū)貼出的帖子中,我分享的內(nèi)容以理論知識(shí)為主。而在今后的知識(shí)分享中,筆者將通過(guò)展示一些簡(jiǎn)單實(shí)用的Demo樣例,以實(shí)踐的形式與大家一起學(xué)習(xí)探討HarmonyOS的相關(guān)技術(shù)知識(shí)。

正文

Dialog組件(對(duì)話框組件),是UI設(shè)計(jì)中經(jīng)常會(huì)用到的一種頁(yè)面布局元素。Dialog可以與許多交互事件進(jìn)行關(guān)聯(lián),當(dāng)用戶(hù)由于手誤而造成錯(cuò)誤的交互操作時(shí),Dialog能及時(shí)起到緩沖的作用,為用戶(hù)提供再次交互的機(jī)會(huì)。Dialog有三種類(lèi)型,分別是ToastDialog,PopupDialog和CommonDialog。

本次的知識(shí)分享以一個(gè)簡(jiǎn)單的Demo為例,向大家展示如何在頁(yè)面跳轉(zhuǎn)中恰當(dāng)?shù)卮┎錍ommonDialog組件。話不多說(shuō),發(fā)車(chē)吧!

首先,我們不妨創(chuàng)建一個(gè)名為“Dialog”的新工程,相關(guān)選項(xiàng)的勾選如下圖所示;

在實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的邏輯之前,我們需要先創(chuàng)建新的AbilitySlice和xml文件來(lái)構(gòu)建一個(gè)頁(yè)面;

(1)打開(kāi)entry>src>main>java>slice,右擊sIice并新建一個(gè)Java類(lèi),將其命名為SecondAbilitySlice;

(2)打開(kāi)entry>src>main>resources>base>layout,右擊layout并新建一個(gè)Layout Resource File,將其命名為second;

(3)打開(kāi)新創(chuàng)建的SecondAbilitySlice,在"public class SecondAbilitySlice{ }"的基礎(chǔ)上加入如下代碼(用于完成頁(yè)面的基礎(chǔ)布置,并將SecondAbilitySlice與second.xml文件進(jìn)行綁定);

public class SecondAbilitySlice extends AbilitySlice {
@Override
protected void onStart(Intent intent) { //設(shè)置onStart()回調(diào)函數(shù)
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_second); //將SecondAbilitySlice與second.xml文件綁定
}

接著,我們通過(guò)xml布局的方式,為MainAbilitySlice和SecondAbilitySlice分別添加一個(gè)文本組件;

(4)打開(kāi)entry>src>main>resources>base>layout>ability_main_xml,加入一個(gè)Text組件,示例代碼如下;

<?xml version="1.0" encoding="utf-8"?>
<DependentLayout //將Directional布局改為Dependent布局
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:background_element="white"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:alignment="center"
ohos:orientation="vertical">
<Text
ohos:id="$+id:text"
ohos:height="match_content"
ohos:width="match_content"
ohos:center_in_parent="true" //將Text組件擺放在頁(yè)面最中心的位置
ohos:text="AbilitySlice1"
ohos:text_size="30vp"
ohos:text_color="blue"/>
</DependentLayout>

(5)打開(kāi)新創(chuàng)建的second.xml,加入一個(gè)Text組件,并將頁(yè)面背景色改為黑色,示例代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<DependentLayout //將Directional布局改為Dependent布局
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:background_element="black" //將背景色調(diào)為黑色
ohos:height="match_parent"
ohos:width="match_parent"
ohos:orientation="vertical">
<Text
ohos:id="$+id:Text"
ohos:height="match_content"
ohos:width="match_content"
ohos:center_in_parent="true" //將Text組件擺放在頁(yè)面最中心的位置
ohos:text="AbilitySlice2"
ohos:text_size="30vp"
ohos:text_color="white"/>
</DependentLayout>

最后,我們?cè)贛ainAbilitySlice與SecondAbilitySlice中分別新創(chuàng)建CommonDialog組件,并寫(xiě)入相關(guān)事件邏輯;

(6)打開(kāi)MainAbilitySlice,在onStart()函數(shù)的"{ }"內(nèi)加入如下代碼;

 CommonDialog dialog=new CommonDialog(getContext());           // 新創(chuàng)建一個(gè)CommonDialog組件,命名為dialog
dialog.setSize(800,400); //設(shè)置CommonDialog的寬度和高度
dialog.setTitleText(" 提示"); //設(shè)置CommonDialog的標(biāo)題文本的內(nèi)容
dialog.setContentText(" 確認(rèn)切換頁(yè)面?"); //設(shè)置CommonDialog的內(nèi)容文本的內(nèi)容
dialog.setButton(IDialog.BUTTON1,"確認(rèn)",(iDialog, i) -> dialog.destroy()); //設(shè)置CommonDialog的第一個(gè)按鈕,用戶(hù)觸發(fā)此按鈕后CommonDialog將銷(xiāo)毀
dialog.setButton(IDialog.BUTTON2,"取消",(iDialog, i) -> dialog.hide()); //設(shè)置CommonDialog的第二個(gè)按鈕,用戶(hù)觸發(fā)此按鈕后CommonDialog將隱藏
dialog.setDestroyedListener(new CommonDialog.DestroyedListener() { //設(shè)置CommonDialog的銷(xiāo)毀監(jiān)聽(tīng)器
@Override
public void onDestroy() {
present(new SecondAbilitySlice(),new Intent()); //設(shè)置present(),當(dāng)CommonDialog被銷(xiāo)毀后執(zhí)行此方法,用戶(hù)界面將從原來(lái)的MainAbilitySlice導(dǎo)航至系統(tǒng)新創(chuàng)建的SecondAbilitySlice實(shí)例中。
}
});
dialog.hide(); //將CommonDialog的初始狀態(tài)設(shè)置為隱藏狀態(tài)(初始狀態(tài)默認(rèn)為隱藏狀態(tài))
Text text1=(Text) findComponentById(ResourceTable.Id_text); //定義已在ability_main_xml中創(chuàng)建的Text組件,命名為text1
text1.setClickedListener(new Component.ClickedListener() { //設(shè)置Text的點(diǎn)擊監(jiān)聽(tīng)器
@Override
public void onClick(Component component) {
dialog.show(); //設(shè)置show(),當(dāng)用戶(hù)點(diǎn)擊Text組件時(shí)執(zhí)行此方法,CommonDialog將進(jìn)入前臺(tái)與用戶(hù)交互
}
});

(7)打開(kāi)SecondAbilitySlice,在onStart()函數(shù)的"{ }”內(nèi)加入如下代碼;

  CommonDialog Dialog=new CommonDialog(getContext());
Dialog.setSize(800,400);
Dialog.setTitleText(" 提示");
Dialog.setContentText(" 確認(rèn)切換頁(yè)面?");
Dialog.setButton(IDialog.BUTTON1,"確認(rèn)",(iDialog, i) -> Dialog.destroy());
Dialog.setButton(IDialog.BUTTON2,"取消",(iDialog, i) -> Dialog.hide());
Dialog.setDestroyedListener(new CommonDialog.DestroyedListener() {
@Override
public void onDestroy() {
terminate(); //設(shè)置terminate(),當(dāng)CommonDialog被銷(xiāo)毀時(shí)執(zhí)行此方法,以結(jié)束SecondAbilitySlice的生命周期,用戶(hù)界面返回原來(lái)的MainAbilitySlice實(shí)例中
}
});
Text text1=(Text) findComponentById(ResourceTable.Id_Text);
text1.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Dialog.show();
}
});

OK,大功告成!調(diào)用遠(yuǎn)程模擬器運(yùn)行此Demo,便可查看相應(yīng)的點(diǎn)擊效果。

結(jié)語(yǔ)

本期的知識(shí)分享在這就告一段落了。

??想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://ost.51cto.com??

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2011-07-21 15:50:42

jQuery Mobi頁(yè)面對(duì)話框

2011-07-01 11:33:00

Qt 模態(tài) 非模態(tài)

2010-01-22 16:27:19

VB.NET關(guān)于對(duì)話框

2021-01-29 09:48:17

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2012-12-03 10:47:54

WebJQuery控件

2011-06-02 10:37:02

Android 對(duì)話框

2010-01-13 18:22:55

VB.NET對(duì)話框

2010-01-28 16:55:26

Android對(duì)話框

2009-12-28 13:47:35

WPF對(duì)話框

2009-12-28 14:32:31

WPF窗體對(duì)話框

2009-12-11 15:35:50

PHP彈出對(duì)話框

2009-11-03 09:21:26

Visual Stud

2019-01-09 11:30:07

Windows10空白對(duì)話框命令

2011-05-20 16:49:21

VB.NET

2010-01-11 09:33:32

VB.NET對(duì)話框調(diào)用

2009-12-29 15:24:48

WPF對(duì)話框

2011-11-23 09:47:36

Winform

2011-07-22 15:32:53

iPhone 按鈕 對(duì)話框

2009-07-02 09:25:41

JSP實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)

2021-01-28 14:34:35

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)