成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

知識分享—在頁面跳轉中附加對話框

系統 OpenHarmony
本次的知識分享以一個簡單的Demo為例,向大家展示如何在頁面跳轉中恰當地穿插CommonDialog組件。話不多說,發車吧!

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

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

前言

之前在社區貼出的帖子中,我分享的內容以理論知識為主。而在今后的知識分享中,筆者將通過展示一些簡單實用的Demo樣例,以實踐的形式與大家一起學習探討HarmonyOS的相關技術知識。

正文

Dialog組件(對話框組件),是UI設計中經常會用到的一種頁面布局元素。Dialog可以與許多交互事件進行關聯,當用戶由于手誤而造成錯誤的交互操作時,Dialog能及時起到緩沖的作用,為用戶提供再次交互的機會。Dialog有三種類型,分別是ToastDialog,PopupDialog和CommonDialog。

本次的知識分享以一個簡單的Demo為例,向大家展示如何在頁面跳轉中恰當地穿插CommonDialog組件。話不多說,發車吧!

首先,我們不妨創建一個名為“Dialog”的新工程,相關選項的勾選如下圖所示;

在實現頁面跳轉的邏輯之前,我們需要先創建新的AbilitySlice和xml文件來構建一個頁面;

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

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

(3)打開新創建的SecondAbilitySlice,在"public class SecondAbilitySlice{ }"的基礎上加入如下代碼(用于完成頁面的基礎布置,并將SecondAbilitySlice與second.xml文件進行綁定);

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

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

(4)打開entry>src>main>resources>base>layout>ability_main_xml,加入一個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組件擺放在頁面最中心的位置
ohos:text="AbilitySlice1"
ohos:text_size="30vp"
ohos:text_color="blue"/>
</DependentLayout>

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

<?xml version="1.0" encoding="utf-8"?>
<DependentLayout //將Directional布局改為Dependent布局
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:background_element="black" //將背景色調為黑色
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組件擺放在頁面最中心的位置
ohos:text="AbilitySlice2"
ohos:text_size="30vp"
ohos:text_color="white"/>
</DependentLayout>

最后,我們在MainAbilitySlice與SecondAbilitySlice中分別新創建CommonDialog組件,并寫入相關事件邏輯;

(6)打開MainAbilitySlice,在onStart()函數的"{ }"內加入如下代碼;

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

(7)打開SecondAbilitySlice,在onStart()函數的"{ }”內加入如下代碼;

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

OK,大功告成!調用遠程模擬器運行此Demo,便可查看相應的點擊效果。

結語

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

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

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

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2011-07-21 15:50:42

jQuery Mobi頁面對話框

2011-07-01 11:33:00

Qt 模態 非模態

2010-01-22 16:27:19

VB.NET關于對話框

2021-01-29 09:48:17

鴻蒙HarmonyOS應用開發

2011-06-02 10:37:02

Android 對話框

2012-12-03 10:47:54

WebJQuery控件

2010-01-13 18:22:55

VB.NET對話框

2009-12-11 15:35:50

PHP彈出對話框

2009-12-28 13:47:35

WPF對話框

2009-12-28 14:32:31

WPF窗體對話框

2010-01-28 16:55:26

Android對話框

2009-12-29 15:24:48

WPF對話框

2010-01-11 09:33:32

VB.NET對話框調用

2011-11-23 09:47:36

Winform

2009-11-03 09:21:26

Visual Stud

2019-01-09 11:30:07

Windows10空白對話框命令

2011-05-20 16:49:21

VB.NET

2009-07-02 09:25:41

JSP實現頁面跳轉

2011-07-22 15:32:53

iPhone 按鈕 對話框

2021-01-28 14:34:35

鴻蒙HarmonyOS應用開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 福利视频一区二区三区 | 黄色片网站国产 | 三级av在线 | 麻豆changesxxx国产 | 国产精品99久久久久久宅男 | 91免费在线播放 | 国产精品网址 | 美女爽到呻吟久久久久 | 国产一区二区免费在线 | 99久久婷婷国产综合精品首页 | 9999在线视频 | 日韩在线免费视频 | 蜜桃av鲁一鲁一鲁一鲁 | 韩日一区二区 | 超碰导航 | 九色在线视频 | av电影一区 | 91在线资源| 日韩中文字幕高清 | 91人人看 | 日本精品免费 | 精品在线一区 | 亚洲国产成人精品女人久久久野战 | 国产91综合一区在线观看 | 九九热在线观看 | 影音先锋男| 在线欧美视频 | 男人天堂久久久 | 成人免费三级电影 | 亚洲国产高清高潮精品美女 | 国产黄色网 | 国产精品一区二区三区在线 | 99re热精品视频国产免费 | 日本在线综合 | 黑人巨大精品欧美一区二区一视频 | 国产综合视频 | 欧美视频免费在线 | 日本成人区 | 中文字幕在线视频网站 | 精品久久国产视频 | 国产精品色 |