更多信息请访问:Harmonyos.51cto.com,与华为共同打造的鸿蒙科技社区。目录1。ToastDialog简介ToastDialog是CommonDialog的子类。ToastDialog有自己的特点。ToastDialog的组成如下:标题、提示内容、选择按钮。一般只使用中间的提示内容,因为ToastDialog的意思是用于消息提示的ToastDialog弹框有自己的显示时间,默认显示2秒,时间过后弹框会自动消失向上="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:orientation="vertical">MainAbilitySlicepackagecom.xdr630.toastapplication.slice;importcom.xdr630.toastapplication.ResourceTable;importohos.aafwk.ability.AbilitySlice;importohos.aafwk.content.Intent;importohos.agp.components.Button;importohos.agp.components.Component;importohos.agp.utils.LayoutAlignment;importohos.agp.window。dialog.ToastDialog;publicclassMainAbilitySliceextendsAbilitySliceimplementsComponent.ClickedListener{@OverridepublicvoidonStart(Intentintent){super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);//在界面中找到按钮Buttonbut=(Button)findComponent.By_Id(/Add点击事件but.setClickedListener(this);}@OverridepublicvoidonActive(){super.onActive();}@OverridepublicvoidonForeground(Intentintent){super.onForeground(intent);}@OverridepublicvoidonClick(Componentcomponent){//一个ToastDialog炸弹出现Frame//this:表示在当前界面显示当前弹框ToastDialogtd=newToastDialog(this);//设置ToastDialog要显示的文本内容td.setText("toast弹框出现");//设置thecentertd.setAlignment(LayoutAlignment.CENTER);//设置弹框出现的时间,单位:毫秒下面是设置弹框时间只有两秒td.setDuration(2000);//让弹框出现td.show();}}运行:点击按钮,可以看到弹框提示信息出现两秒后弹框消失注:基本用法:ToastDialogt=newToastDialog(this);t.setText("Contentto被显示")t.setAlignment(LayoutAlignment.CENTER);t.show();相关设置:ToastDialogtoastDialog=newToastDialog(this);//设置size//如果不写则默认包内容toastDialog.setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT,DirectionalLayout.LayoutConfig.MATCH_CONTENT);//设置时长//如果不写,默认2秒toastDialog.setDuration(2000);//设置自动关闭//不写自动关闭toastDialog.setAutoClosable(true);//设置位置//不写则居中defaulttoastDialog.setAlignment(LayoutAlignment.CENTER);//设置提示信息内容toastDialog.setText("Contenttobedisplayed");//让toast显示toastDialog.show();3.ToastDialog提取工具类ToastDialog扩展可以给ToastDialog弹出框一个布局。ToastDialog被提取到一个工具类中。以后用弹框的时候就不用再写了。你可以直接调用工具类的方法。案例:新建一个布局文件,名称:mytoast将父类布局改为match_content,在布局文件中写入一段文字,因为ToastDialog也只有文字提示,因为每次消息都需要修改文字中的内容弹出,所以需要给文本一个id,文本内容是变化的,所以设置mytoast.xml新建筑工具包和类ToastUtilspackagecom.xdr630.toastapplication.MyToastUtils;importcom.xdr630.toastapplication.ResourceTable;importohos.agp.components.DirectionalLayout;importohos.agp.components.LayoutScatter;importohos.agp.components.Text;importohos.agp.utils.LayoutAlignment;importohos.agp.window.dialog.ToastDialog;importohos.app.Context;publicclassToastUtils{publicstaticvoidshowDialog(Contextcontext,Stringmessage){//1.把xml文件加载到内存当中DirectionalLayoutdl=(DirectionalLayout)LayoutScatter.getInstance(context).parse(资源ourceTable.Layout_mytoast,null,false);//2.获取当前布局对象中的文本组件Textmsg=(Text)dl.findComponentById(ResourceTable.Id_msg);//3.将要提示的信息设置到文本组件msg.setText(message);//4.创建一个ToastDialog对象ToastDialogtd=newToastDialog(context);//设置弹框大小,默认为包裹内容//宽高必须设置td.setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT,DirectionalLayout.LayoutConfig.MATCH_CONTENT);//设置出现时间td.setDuration(2000);//设置对齐方式td.setAlignment(LayoutAlignment.CENTER);//把xml对象给ToastDialogtd.setContentCustomComponent(dl);//让子弹框出现td.show();}}修改MainAbilitySlice中的onClick方法调用工具类方法importohos.aafwk.ability.AbilitySlice;importohos.aafwk.content.Intent;importohos.agp.components.Button;importohos.agp.components.Component;importohos.agp.utils.LayoutAlignment;importohos.agp.window.dialog.ToastDialog;publicclassMainAbilitySliceextendsAbilitySliceimplementsComponent.ClickedListener{@OverridepublicvoidonStart(Intentintent){super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);//在界面中找到按钮Buttonbut=(Button)findComponentById(ResourceTable.Id_but);//添加点击事件but.setClickedListener(this);}@OverridepublicvoidonActive(){super.onActive();}@OverridepublicvoidonForeground(Intentintent){super.onForeground(intent);}@OverridepublicvoidonClick(Componentcomponent){ToastUtils.showDialog(this,"toastbomb帧提取工具类");}}运行:点击这个弹框和我们平时玩的APP中的弹框类似,只是有点大,调整弹框的大小-mytoast.xml中的向上框,ToastUtils.java中弹框的位置也可以给弹框加一个偏移,比如在Y轴上加200px。运行。点击之后,你会发现弹框向上偏移了。更多信息请访问:鸿蒙与华为官方技术社区共建https://harmonyos.51cto.com