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

創(chuàng)新互聯(lián)公司致力于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過(guò)標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場(chǎng)競(jìng)爭(zhēng)中脫穎而出。 選擇創(chuàng)新互聯(lián)公司,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.
Table of Contents
1. ToastDialog 簡(jiǎn)介
- ToastDialog 是 CommonDialog 的子類,他們的用法幾乎是一致的,只不過(guò) ToastDialog 有自己的特性
- ToastDialog 的組成如下:標(biāo)題、提示內(nèi)容、選擇按鈕
- 一般只會(huì)用中間的提示內(nèi)容,因?yàn)?ToastDialog 出現(xiàn)的意義就是用來(lái)作消息提示的
- ToastDialog 彈框有自己的展示時(shí)間,默認(rèn)展示 2 秒鐘,時(shí)間到了之后彈框就會(huì)自動(dòng)消失
2. ToastDialog 案例
案例:點(diǎn)擊按鈕彈出一個(gè)2秒的彈框提示信息
ability_main
- xmlns:ohos="http://schemas.huawei.com/res/ohos"
- ohos:height="match_parent"
- ohos:width="match_parent"
- ohos:orientation="vertical">
- ohos:id="$+id:msg"
- ohos:height="match_content"
- ohos:width="match_content"
- ohos:text_size="30fp"
- ohos:text_color="#FFFFFF"
- ohos:text_alignment="center"
- ohos:background_element="#464343"
- />
MainAbilitySlice
- package com.xdr630.toastapplication.slice;
- import com.xdr630.toastapplication.ResourceTable;
- import ohos.aafwk.ability.AbilitySlice;
- import ohos.aafwk.content.Intent;
- import ohos.agp.components.Button;
- import ohos.agp.components.Component;
- import ohos.agp.utils.LayoutAlignment;
- import ohos.agp.window.dialog.ToastDialog;
- public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {
- @Override
- public void onStart(Intent intent) {
- super.onStart(intent);
- super.setUIContent(ResourceTable.Layout_ability_main);
- //找到界面中的按鈕
- Button but = (Button) findComponentById(ResourceTable.Id_but);
- //添加點(diǎn)擊事件
- but.setClickedListener(this);
- }
- @Override
- public void onActive() {
- super.onActive();
- }
- @Override
- public void onForeground(Intent intent) {
- super.onForeground(intent);
- }
- @Override
- public void onClick(Component component) {
- //出現(xiàn)一個(gè) ToastDialog 彈框
- // this:表示當(dāng)前的彈框展示在當(dāng)前的界面
- ToastDialog td = new ToastDialog(this);
- //給ToastDialog設(shè)置要展示的文本內(nèi)容
- td.setText("吐司彈框出現(xiàn)了");
- //設(shè)置居中
- td.setAlignment(LayoutAlignment.CENTER);
- //設(shè)置出現(xiàn)的時(shí)間,單位:毫秒。下面就是設(shè)置彈框時(shí)間只有兩秒
- td.setDuration(2000);
- //讓彈框出現(xiàn)
- td.show();
- }
- }
運(yùn)行:
- 點(diǎn)擊按鈕,可以看到彈框提示信息出現(xiàn)了
- 兩秒后彈框消失
注意事項(xiàng):
- 基本使用:
- ToastDialog t = new ToastDialog(this);
- t.setText("要顯示的內(nèi)容")
- t.setAlignment(LayoutAlignment.CENTER);
- t.show();
- 相關(guān)設(shè)置:
- ToastDialog toastDialog = new ToastDialog(this);
- //設(shè)置的大小
- //如果不寫(xiě),默認(rèn)包裹內(nèi)容
- toastDialog.setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT,
- DirectionalLayout.LayoutConfig.MATCH_CONTENT);
- //設(shè)置持續(xù)時(shí)間
- //如果不寫(xiě),默認(rèn)2秒
- toastDialog.setDuration(2000);
- //設(shè)置自動(dòng)關(guān)閉
- //如果不寫(xiě),就是自動(dòng)關(guān)閉
- toastDialog.setAutoClosable(true);
- //設(shè)置位置
- //如果不寫(xiě),默認(rèn)居中
- toastDialog.setAlignment(LayoutAlignment.CENTER);
- //設(shè)置提示信息內(nèi)容
- toastDialog.setText("要顯示的內(nèi)容");
- //讓吐司展示出來(lái)
- toastDialog.show();
3. ToastDialog 抽取工具類
ToastDialog 擴(kuò)展
- 可以給ToastDialog彈框一個(gè)布局
- 把ToastDialog抽取到一個(gè)工具類當(dāng)中,以后用到彈框的時(shí)候就不需要再寫(xiě)了,直接調(diào)用工具類的方法就可以了
案例:
新建一個(gè)布局文件,名為:mytoast
- 把父類布局也改成 match_content
- 在布局文件寫(xiě)一個(gè)文本就可以了,因?yàn)門(mén)oastDialog也只有一個(gè)文本提示
- 因?yàn)樵诿看螐棾鱿⒌臅r(shí)候要修改文本里的內(nèi)容,所以要給文本一個(gè)id,文本內(nèi)容是變化的,所以要在Java代碼那里設(shè)置
mytoast.xml
- xmlns:ohos="http://schemas.huawei.com/res/ohos"
- ohos:height="match_content"
- ohos:width="match_content"
- ohos:orientation="vertical">
- ohos:id="$+id:msg"
- ohos:height="match_content"
- ohos:width="match_content"
- ohos:text_size="30fp"
- ohos:text_color="#FFFFFF"
- ohos:text_alignment="center"
- ohos:background_element="#464343"
- />
新建工具包和類
ToastUtils
- package com.xdr630.toastapplication.MyToastUtils;
- import com.xdr630.toastapplication.ResourceTable;
- import ohos.agp.components.DirectionalLayout;
- import ohos.agp.components.LayoutScatter;
- import ohos.agp.components.Text;
- import ohos.agp.utils.LayoutAlignment;
- import ohos.agp.window.dialog.ToastDialog;
- import ohos.app.Context;
- public class ToastUtils {
- public static void showDialog(Context context,String message){
- //1.把 xml 文件加載到內(nèi)存當(dāng)中
- DirectionalLayout dl = (DirectionalLayout) LayoutScatter.getInstance(context).parse(ResourceTable.Layout_mytoast, null, false);
- //2.獲取到當(dāng)前布局對(duì)象中的文本組件
- Text msg = (Text) dl.findComponentById(ResourceTable.Id_msg);
- //3.把需要提示的信息設(shè)置到文本組件
- msg.setText(message);
- //4.創(chuàng)建一個(gè)ToastDialog對(duì)象
- ToastDialog td = new ToastDialog(context);
- //設(shè)置彈框的大小,默認(rèn)是包裹內(nèi)容
- //寬高都要設(shè)置
- td.setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT,DirectionalLayout.LayoutConfig.MATCH_CONTENT);
- //設(shè)置出現(xiàn)的時(shí)間
- td.setDuration(2000);
- //設(shè)置對(duì)齊方式
- td.setAlignment(LayoutAlignment.CENTER);
- //把 xml 對(duì)象交給ToastDialog
- td.setContentCustomComponent(dl);
- //讓彈框出現(xiàn)
- td.show();
- }
- }
- 在 MainAbilitySlice 中修改 onClick 方法中去調(diào)用工具類方法
- package com.xdr630.toastapplication.slice;
- import com.xdr630.toastapplication.MyToastUtils.ToastUtils;
- import com.xdr630.toastapplication.ResourceTable;
- import ohos.aafwk.ability.AbilitySlice;
- import ohos.aafwk.content.Intent;
- import ohos.agp.components.Button;
- import ohos.agp.components.Component;
- import ohos.agp.utils.LayoutAlignment;
- import ohos.agp.window.dialog.ToastDialog;
- public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {
- @Override
- public void onStart(Intent intent) {
- super.onStart(intent);
- super.setUIContent(ResourceTable.Layout_ability_main);
- //找到界面中的按鈕
- Button but = (Button) findComponentById(ResourceTable.Id_but);
- //添加點(diǎn)擊事件
- but.setClickedListener(this);
- }
- @Override
- public void onActive() {
- super.onActive();
- }
- @Override
- public void onForeground(Intent intent) {
- super.onForeground(intent);
- }
- @Override
- public void onClick(Component component) {
- ToastUtils.showDialog(this,"吐司彈框抽取工具類");
- }
- }
運(yùn)行:
點(diǎn)擊
- 這個(gè)彈框就跟我們平時(shí)玩的APP中的彈框有些類似,唯一區(qū)別就是有點(diǎn)大,在 mytoast.xml 去調(diào)節(jié)彈框的大小,ToastUtils.java 調(diào)節(jié)彈框的位置
- 還可以給彈框添加一個(gè)偏移量,如Y軸添加200px
- 運(yùn)行,點(diǎn)擊后,發(fā)現(xiàn)彈框往上偏移了
想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):
和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.
分享題目:HarmonyOS實(shí)戰(zhàn)—ToastDialog組件的基本使用
標(biāo)題鏈接:http://fisionsoft.com.cn/article/djphgdc.html


咨詢
建站咨詢
