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

HarmonyOS實戰—ToastDialog組件的基本使用

開發 前端 OpenHarmony
oastDialog 是 CommonDialog 的子類,他們的用法幾乎是一致的,只不過 ToastDialog 有自己的特性,ToastDialog 彈框有自己的展示時間,默認展示 2 秒鐘,時間到了之后彈框就會自動消失。

[[423591]]

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

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

https://harmonyos.51cto.com

Table of Contents

1. ToastDialog 簡介

  • ToastDialog 是 CommonDialog 的子類,他們的用法幾乎是一致的,只不過 ToastDialog 有自己的特性
  • ToastDialog 的組成如下:標題、提示內容、選擇按鈕

  • 一般只會用中間的提示內容,因為 ToastDialog 出現的意義就是用來作消息提示的
  • ToastDialog 彈框有自己的展示時間,默認展示 2 秒鐘,時間到了之后彈框就會自動消失

2. ToastDialog 案例

案例:點擊按鈕彈出一個2秒的彈框提示信息

ability_main

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

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.         //添加點擊事件 
  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.         //出現一個 ToastDialog 彈框 
  37.         // this:表示當前的彈框展示在當前的界面 
  38.         ToastDialog td = new ToastDialog(this); 
  39.         //給ToastDialog設置要展示的文本內容 
  40.         td.setText("吐司彈框出現了"); 
  41.         //設置居中 
  42.         td.setAlignment(LayoutAlignment.CENTER); 
  43.         //設置出現的時間,單位:毫秒。下面就是設置彈框時間只有兩秒 
  44.         td.setDuration(2000); 
  45.         //讓彈框出現 
  46.         td.show(); 
  47.     } 

運行:

  • 點擊按鈕,可以看到彈框提示信息出現了

  • 兩秒后彈框消失

注意事項:

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

3. ToastDialog 抽取工具類

ToastDialog 擴展

  1. 可以給ToastDialog彈框一個布局
  2. 把ToastDialog抽取到一個工具類當中,以后用到彈框的時候就不需要再寫了,直接調用工具類的方法就可以了

案例:

新建一個布局文件,名為:mytoast

  • 把父類布局也改成 match_content

  • 在布局文件寫一個文本就可以了,因為ToastDialog也只有一個文本提示
  • 因為在每次彈出消息的時候要修改文本里的內容,所以要給文本一個id,文本內容是變化的,所以要在Java代碼那里設置

mytoast.xml

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

新建工具包和類

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 文件加載到內存當中 
  15.         DirectionalLayout dl = (DirectionalLayout) LayoutScatter.getInstance(context).parse(ResourceTable.Layout_mytoast, nullfalse); 
  16.  
  17.         //2.獲取到當前布局對象中的文本組件 
  18.         Text msg = (Text) dl.findComponentById(ResourceTable.Id_msg); 
  19.  
  20.         //3.把需要提示的信息設置到文本組件 
  21.         msg.setText(message); 
  22.  
  23.         //4.創建一個ToastDialog對象 
  24.         ToastDialog td = new ToastDialog(context); 
  25.         //設置彈框的大小,默認是包裹內容 
  26.         //寬高都要設置 
  27.         td.setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT,DirectionalLayout.LayoutConfig.MATCH_CONTENT); 
  28.         //設置出現的時間 
  29.         td.setDuration(2000); 
  30.         //設置對齊方式 
  31.         td.setAlignment(LayoutAlignment.CENTER); 
  32.         //把 xml 對象交給ToastDialog 
  33.         td.setContentCustomComponent(dl); 
  34.         //讓彈框出現 
  35.         td.show(); 
  36.     } 
  • 在 MainAbilitySlice 中修改 onClick 方法中去調用工具類方法

  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.         //添加點擊事件 
  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.     } 

運行:

點擊

  • 這個彈框就跟我們平時玩的APP中的彈框有些類似,唯一區別就是有點大,在 mytoast.xml 去調節彈框的大小,ToastUtils.java 調節彈框的位置

  • 還可以給彈框添加一個偏移量,如Y軸添加200px

  • 運行,點擊后,發現彈框往上偏移了

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

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

https://harmonyos.51cto.com

 

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

2021-09-06 15:31:01

鴻蒙HarmonyOS應用

2021-09-27 10:43:18

鴻蒙HarmonyOS應用

2021-07-05 14:29:28

鴻蒙HarmonyOS應用

2021-09-27 14:44:48

鴻蒙HarmonyOS應用

2021-08-25 09:38:16

鴻蒙HarmonyOS應用

2021-08-04 14:32:16

鴻蒙HarmonyOS應用

2010-03-04 10:01:01

Android基本組件

2022-02-14 08:58:00

架構

2024-05-23 08:05:04

2012-01-17 13:16:34

JavaSwing

2010-02-03 15:59:08

Android組件

2020-11-16 09:50:43

hpm-cli

2021-09-07 09:53:45

鴻蒙HarmonyOS應用

2011-05-26 09:20:59

配線架

2021-12-24 15:46:23

鴻蒙HarmonyOS應用

2020-04-19 17:14:17

服務器監控數據中心

2022-05-19 15:59:23

組件焦點鴻蒙

2021-08-11 09:32:12

鴻蒙HarmonyOS應用

2016-10-18 21:39:59

Semantic-UIReact基本元素組件

2019-11-27 10:36:23

數據中心邊緣計算技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级高清 | 天天人人精品 | 国产精品一区二区久久久久 | 欧美一级久久 | 伊人色综合久久久天天蜜桃 | 天堂色网 | 一级毛片免费视频 | 伊人网站 | 欧美aaaaaaaa | 久国产视频| 狠狠干狠狠插 | 欧美日产国产成人免费图片 | 99re视频在线 | 精品人伦一区二区三区蜜桃网站 | 一区二区视频在线观看 | 欧美一区二区三区 | 久久亚洲天堂 | 久久久青草 | 成年人视频在线免费观看 | 中文字幕国产精品 | 亚洲91精品 | 我我色综合 | 国产精品一区二区福利视频 | 在线中文字幕日韩 | 中文视频在线 | 亚洲精品第一国产综合野 | 欧美一级视频在线观看 | 欧洲一区二区三区 | 久久精品a级毛片 | 国产综合精品一区二区三区 | 精品一区国产 | 国产成人综合在线 | 91精品综合久久久久久五月天 | 国产精品成人一区二区三区 | 天天操夜夜爽 | 羞羞视频免费观看入口 | 国产亚洲一区二区在线观看 | 福利视频大全 | 欧美精品一区二区三区在线播放 | 午夜影院在线免费观看视频 | 久草精品视频 |