日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
HarmonyOS實(shí)戰(zhàn)—ToastDialog組件的基本使用

想了解更多內(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

 
 
 
 
  1.  
  2.     xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  3.     ohos:height="match_parent" 
  4.     ohos:width="match_parent" 
  5.     ohos:orientation="vertical"> 
  6.  
  7.     
  8.         ohos:id="$+id:msg" 
  9.         ohos:height="match_content" 
  10.         ohos:width="match_content" 
  11.         ohos:text_size="30fp" 
  12.         ohos:text_color="#FFFFFF" 
  13.         ohos:text_alignment="center" 
  14.         ohos:background_element="#464343" 
  15.         /> 
  16.  
  17.  

MainAbilitySlice

 
 
 
 
  1. package com.xdr630.toastapplication.slice; 
  2.  
  3. import com.xdr630.toastapplication.ResourceTable; 
  4. import ohos.aafwk.ability.AbilitySlice; 
  5. import ohos.aafwk.content.Intent; 
  6. import ohos.agp.components.Button; 
  7. import ohos.agp.components.Component; 
  8. import ohos.agp.utils.LayoutAlignment; 
  9. import ohos.agp.window.dialog.ToastDialog; 
  10.  
  11. public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener { 
  12.     @Override 
  13.     public void onStart(Intent intent) { 
  14.         super.onStart(intent); 
  15.         super.setUIContent(ResourceTable.Layout_ability_main); 
  16.  
  17.         //找到界面中的按鈕 
  18.         Button but = (Button) findComponentById(ResourceTable.Id_but); 
  19.         //添加點(diǎn)擊事件 
  20.         but.setClickedListener(this); 
  21.  
  22.     } 
  23.  
  24.     @Override 
  25.     public void onActive() { 
  26.         super.onActive(); 
  27.     } 
  28.  
  29.     @Override 
  30.     public void onForeground(Intent intent) { 
  31.         super.onForeground(intent); 
  32.     } 
  33.  
  34.     @Override 
  35.     public void onClick(Component component) { 
  36.         //出現(xiàn)一個(gè) ToastDialog 彈框 
  37.         // this:表示當(dāng)前的彈框展示在當(dāng)前的界面 
  38.         ToastDialog td = new ToastDialog(this); 
  39.         //給ToastDialog設(shè)置要展示的文本內(nèi)容 
  40.         td.setText("吐司彈框出現(xiàn)了"); 
  41.         //設(shè)置居中 
  42.         td.setAlignment(LayoutAlignment.CENTER); 
  43.         //設(shè)置出現(xiàn)的時(shí)間,單位:毫秒。下面就是設(shè)置彈框時(shí)間只有兩秒 
  44.         td.setDuration(2000); 
  45.         //讓彈框出現(xiàn) 
  46.         td.show(); 
  47.     } 

運(yùn)行:

  • 點(diǎn)擊按鈕,可以看到彈框提示信息出現(xiàn)了

  • 兩秒后彈框消失

注意事項(xiàng):

  • 基本使用:
 
 
 
 
  1. ToastDialog t = new ToastDialog(this); 
  2. t.setText("要顯示的內(nèi)容") 
  3. t.setAlignment(LayoutAlignment.CENTER); 
  4. t.show(); 
  • 相關(guān)設(shè)置:
 
 
 
 
  1. ToastDialog toastDialog = new ToastDialog(this); 
  2. //設(shè)置的大小 
  3. //如果不寫,默認(rèn)包裹內(nèi)容 
  4. toastDialog.setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT, 
  5. DirectionalLayout.LayoutConfig.MATCH_CONTENT); 
  6. //設(shè)置持續(xù)時(shí)間 
  7. //如果不寫,默認(rèn)2秒 
  8. toastDialog.setDuration(2000); 
  9. //設(shè)置自動(dòng)關(guān)閉 
  10. //如果不寫,就是自動(dòng)關(guān)閉 
  11. toastDialog.setAutoClosable(true); 
  12. //設(shè)置位置 
  13. //如果不寫,默認(rèn)居中 
  14. toastDialog.setAlignment(LayoutAlignment.CENTER); 
  15. //設(shè)置提示信息內(nèi)容 
  16. toastDialog.setText("要顯示的內(nèi)容"); 
  17. //讓吐司展示出來(lái) 
  18. toastDialog.show(); 

3. ToastDialog 抽取工具類

ToastDialog 擴(kuò)展

  1. 可以給ToastDialog彈框一個(gè)布局
  2. 把ToastDialog抽取到一個(gè)工具類當(dāng)中,以后用到彈框的時(shí)候就不需要再寫了,直接調(diào)用工具類的方法就可以了

案例:

新建一個(gè)布局文件,名為:mytoast

  • 把父類布局也改成 match_content

  • 在布局文件寫一個(gè)文本就可以了,因?yàn)門oastDialog也只有一個(gè)文本提示
  • 因?yàn)樵诿看螐棾鱿⒌臅r(shí)候要修改文本里的內(nèi)容,所以要給文本一個(gè)id,文本內(nèi)容是變化的,所以要在Java代碼那里設(shè)置

mytoast.xml

 
 
 
 
  1.  
  2.     xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  3.     ohos:height="match_content" 
  4.     ohos:width="match_content" 
  5.     ohos:orientation="vertical"> 
  6.  
  7.     
  8.         ohos:id="$+id:msg" 
  9.         ohos:height="match_content" 
  10.         ohos:width="match_content" 
  11.         ohos:text_size="30fp" 
  12.         ohos:text_color="#FFFFFF" 
  13.         ohos:text_alignment="center" 
  14.         ohos:background_element="#464343" 
  15.         /> 
  16.  
  17.  

新建工具包和類

ToastUtils

 
 
 
 
  1. package com.xdr630.toastapplication.MyToastUtils; 
  2.  
  3. import com.xdr630.toastapplication.ResourceTable; 
  4. import ohos.agp.components.DirectionalLayout; 
  5. import ohos.agp.components.LayoutScatter; 
  6. import ohos.agp.components.Text; 
  7. import ohos.agp.utils.LayoutAlignment; 
  8. import ohos.agp.window.dialog.ToastDialog; 
  9. import ohos.app.Context; 
  10.  
  11. public class ToastUtils { 
  12.     public static void showDialog(Context context,String message){ 
  13.  
  14.         //1.把 xml 文件加載到內(nèi)存當(dāng)中 
  15.         DirectionalLayout dl = (DirectionalLayout) LayoutScatter.getInstance(context).parse(ResourceTable.Layout_mytoast, null, false); 
  16.  
  17.         //2.獲取到當(dāng)前布局對(duì)象中的文本組件 
  18.         Text msg = (Text) dl.findComponentById(ResourceTable.Id_msg); 
  19.  
  20.         //3.把需要提示的信息設(shè)置到文本組件 
  21.         msg.setText(message); 
  22.  
  23.         //4.創(chuàng)建一個(gè)ToastDialog對(duì)象 
  24.         ToastDialog td = new ToastDialog(context); 
  25.         //設(shè)置彈框的大小,默認(rèn)是包裹內(nèi)容 
  26.         //寬高都要設(shè)置 
  27.         td.setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT,DirectionalLayout.LayoutConfig.MATCH_CONTENT); 
  28.         //設(shè)置出現(xiàn)的時(shí)間 
  29.         td.setDuration(2000); 
  30.         //設(shè)置對(duì)齊方式 
  31.         td.setAlignment(LayoutAlignment.CENTER); 
  32.         //把 xml 對(duì)象交給ToastDialog 
  33.         td.setContentCustomComponent(dl); 
  34.         //讓彈框出現(xiàn) 
  35.         td.show(); 
  36.     } 
  • 在 MainAbilitySlice 中修改 onClick 方法中去調(diào)用工具類方法

 
 
 
 
  1. package com.xdr630.toastapplication.slice; 
  2.  
  3. import com.xdr630.toastapplication.MyToastUtils.ToastUtils; 
  4. import com.xdr630.toastapplication.ResourceTable; 
  5. import ohos.aafwk.ability.AbilitySlice; 
  6. import ohos.aafwk.content.Intent; 
  7. import ohos.agp.components.Button; 
  8. import ohos.agp.components.Component; 
  9. import ohos.agp.utils.LayoutAlignment; 
  10. import ohos.agp.window.dialog.ToastDialog; 
  11.  
  12. public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener { 
  13.     @Override 
  14.     public void onStart(Intent intent) { 
  15.         super.onStart(intent); 
  16.         super.setUIContent(ResourceTable.Layout_ability_main); 
  17.  
  18.         //找到界面中的按鈕 
  19.         Button but = (Button) findComponentById(ResourceTable.Id_but); 
  20.         //添加點(diǎn)擊事件 
  21.         but.setClickedListener(this); 
  22.  
  23.     } 
  24.  
  25.     @Override 
  26.     public void onActive() { 
  27.         super.onActive(); 
  28.     } 
  29.  
  30.     @Override 
  31.     public void onForeground(Intent intent) { 
  32.         super.onForeground(intent); 
  33.     } 
  34.  
  35.     @Override 
  36.     public void onClick(Component component) { 
  37.  
  38.         ToastUtils.showDialog(this,"吐司彈框抽取工具類"); 
  39.          
  40.     } 

運(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.


網(wǎng)站欄目:HarmonyOS實(shí)戰(zhàn)—ToastDialog組件的基本使用
路徑分享:http://www.dlmjj.cn/article/djphgdc.html