精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

HarmonyOS基礎之Fraction用法介紹

開發 前端 OpenHarmony
Fraction字面意思為分數、極小一部分,在Ability或者AbilitySlice中它實際也是頁面的一部分,不能單獨使用。Fraction的生命周期狀態取決于它的容器,如果容器被銷毀,其中的所有部分也將被銷毀。

[[424094]]

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

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

https://harmonyos.51cto.com

前言

Fraction字面意思為分數、極小一部分,在Ability或者AbilitySlice中它實際也是頁面的一部分,不能單獨使用。Fraction的生命周期狀態取決于它的容器,如果容器被銷毀,其中的所有部分也將被銷毀。我們可以使用Fraction定義各種布局,以豐富應用程序的用戶界面。下面就向大家介紹一下Fraction的具體用法以及其生命周期。

Fraction使用

首先想要使用Fraction,我們必須讓Ability繼承FractionAbility。

  1. public class FractionAbility extends Ability { 
  2.     public FractionAbility() { 
  3.         throw new RuntimeException("Stub!"); 
  4.     } 
  5.  
  6.     public FractionManager getFractionManager() { 
  7.         throw new RuntimeException("Stub!"); 
  8.     } 
  9.  
  10.     ... 

為什么一定需要繼承FractionAbility,通過FractionAbility源碼我們可以看出其內部提供了getFractionManager()方法,該方法返回的FractionManager是管理Fraction的生命周期的關鍵方法。

那么下面就讓我們來簡單使用一下Fraction。

首先我們創建一個layout,為Fraction的布局文件fraction_first.xml。

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <DependentLayout 
  3.     xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  4.     ohos:height="match_parent" 
  5.     ohos:width="match_parent"
  6.     <Text 
  7.         ohos:text_size="25fp" 
  8.         ohos:center_in_parent="true" 
  9.         ohos:text="First Fraction" 
  10.         ohos:height="match_content" 
  11.         ohos:width="match_content"/> 
  12. </DependentLayout> 

 布局文件創建完成后我們再來新建一個類TestFraction繼承Fraction。

  1. public class TestFraction extends Fraction { 
  2.     @Override 
  3.     protected Component onComponentAttached(LayoutScatter scatter, ComponentContainer container, Intent intent) { 
  4.         Component component = scatter.parse(ResourceTable.Layout_fraction_first, 
  5.                 container, false); 
  6.         return component; 
  7.     } 

就這樣一個簡單的Fraction就創建好了,接下來就是將它添加到Ability中,布局文件ability_test_fraction.xml。

  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:alignment="center" 
  7.     ohos:orientation="vertical"
  8.  
  9.     <StackLayout 
  10.         ohos:id="$+id:fraction_container" 
  11.         ohos:height="match_parent" 
  12.         ohos:width="match_parent" 
  13.         ohos:bottom_margin="45vp"
  14.     </StackLayout> 
  15.  
  16. </DirectionalLayout> 

 TestFractionAbility繼承FractionAbility。

  1. public class TestFractionAbility extends FractionAbility { 
  2.     @Override 
  3.     public void onStart(Intent intent) { 
  4.         super.onStart(intent); 
  5.         super.setUIContent(ResourceTable.Layout_ability_test_fraction); 
  6.  
  7.         FractionManager fractionManager = getFractionManager(); 
  8.         fractionManager.startFractionScheduler().add(ResourceTable.Id_fraction_container, new TestFraction()).submit(); 
  9.     } 

 就這樣,TestFraction就成功的被添加到了Ability中,ability_test_fraction.xml中的fraction_container就是放置TestFraction的容器,在摸機器運行效果如下:

FractionManager方法探索

我們已經學習了Fraction的簡單用法,下面再來研究下對Fraction管理的關鍵類FractionManager。

  1. public class FractionManager { 
  2.     FractionManager() { 
  3.         throw new RuntimeException("Stub!"); 
  4.     } 
  5.  
  6.     public FractionScheduler startFractionScheduler() { 
  7.         throw new RuntimeException("Stub!"); 
  8.     } 
  9.  
  10.     public void popFromStack() { 
  11.         throw new RuntimeException("Stub!"); 
  12.     } 
  13.  
  14.     public void popFromStack(String tag, int flags) { 
  15.         throw new RuntimeException("Stub!"); 
  16.     } 
  17.  
  18.     public Optional<Fraction> getFractionByTag(String tag) { 
  19.         throw new RuntimeException("Stub!"); 
  20.     } 

這里有startFractionScheduler(),popFromStack(),popFromStack(String tag, int flags),getFractionByTag(String tag)四個方法。

getFractionByTag(String tag)方法很明顯就是通過tag獲取已添加的Fraction,那么popFromStack()方法的作用是什么呢?

為了研究該方法的用途,我們先來看下看下startFractionScheduler(),該方法返回了FractionScheduler對象Fraction調度器,字面理解應該就是

Fraction的管理器,下面來看下FractionScheduler提供了哪些方法管理Fraction。

  1. public abstract class FractionScheduler { 
  2.     public FractionScheduler() { 
  3.         throw new RuntimeException("Stub!"); 
  4.     } 
  5.  
  6.     public abstract FractionScheduler add(int var1, Fraction var2); 
  7.  
  8.     public abstract FractionScheduler add(int var1, Fraction var2, String var3); 
  9.  
  10.     public abstract FractionScheduler replace(int var1, Fraction var2); 
  11.  
  12.     public abstract FractionScheduler remove(Fraction var1); 
  13.  
  14.     public abstract FractionScheduler hide(Fraction var1); 
  15.  
  16.     public abstract FractionScheduler show(Fraction var1); 
  17.  
  18.     public abstract int submit(); 
  19.  
  20.     public abstract FractionScheduler pushIntoStack(String var1); 

這里通過代碼我們可以很直觀的看出FractionScheduler是個抽象類,里面提供了對Fraction的添加,替換,移除,展示的方法,并且最終通過submit()方法提交操作。

其中有個很特別的方法pushIntoStack(String var1),這個方法具體是做什么的呢,結合上文我們發現它是與popFromStack()方法配合使用的,一個添加一個移除。

下面我們就寫個簡單的示例演示下該方法的使用。

  1. fractionManager = getFractionManager(); 
  2. fractionManager.startFractionScheduler().add(ResourceTable.Id_fraction_container, new TestFraction()).pushIntoStack("1").submit(); 
  3. fractionManager.startFractionScheduler().add(ResourceTable.Id_fraction_container, new FirstFraction()).pushIntoStack("2").submit(); 
  4. fractionManager.startFractionScheduler().add(ResourceTable.Id_fraction_container, new SecondFraction()).pushIntoStack("3").submit(); 
  5.  
  6. fun1.setClickedListener(new Component.ClickedListener() { 
  7.     @Override 
  8.     public void onClick(Component component) { 
  9.         System.out.println("fractionManager.popFromStack()"); 
  10.         fractionManager.popFromStack(); 
  11.     } 
  12. }); 
  13.  
  14. fun2.setClickedListener(new Component.ClickedListener() { 
  15.     @Override 
  16.     public void onClick(Component component) { 
  17.         System.out.println("fractionManager.popFromStack(\"\",1)"); 
  18.         fractionManager.popFromStack("2",1); 
  19.     } 
  20. }); 

往同一個容器中添加三個Fraction,并且都使用pushIntoStack(“”)方法將Fraction添加到堆棧中,先來看popFromStack()調用效果。

可以看出SecondFraction,FirstFraction,TestFraction依次被移除

重新運行項目,我們在調用popFromStack(String tag, int flags)方法,將tag設置為"2",FirstFraction查看運行效果。

SecondFraction,FirstFraction同時被移除了

通過實踐可以看出popFromStack()每次調用會移除堆棧頂部的Fraction,popFromStack(String tag, int flags)則會移除tag以及其上層所有Fraction。

了解了具體作用,在今后我們的開發場景中可以根據需求對Fraction進行管理。

Fraction的生命周期

研究了Fraction的具體用法,下面我們就來探索一下Fraction在Ability中的生命周期情況。

Fraction生命周期主要涉及到八個方法,分別是onComponentAttached、onStart、onActive、onInactive、onBackground、onForeground、onStop、onComponentDetach。

我們在每個方法中添加日志運行程序查看生命周期具體情況。

啟動Fraction

HarmonyOS基礎之Fraction用法介紹-鴻蒙HarmonyOS技術社區

依次調用onComponentAttached、onStart、onActive方法

按下home進入后臺

HarmonyOS基礎之Fraction用法介紹-鴻蒙HarmonyOS技術社區

依次調用onInactive、onBackground方法

返回前臺

HarmonyOS基礎之Fraction用法介紹-鴻蒙HarmonyOS技術社區

依次調用onForeground、onActive方法

退出應用

HarmonyOS基礎之Fraction用法介紹-鴻蒙HarmonyOS技術社區

依次調用onInactive、onBackground、onStop、onComponentDetach方法

總結:

通過本次學習,我們了解了Fraction的基本用法,Fraction所涉及到的關鍵類以及其中開放的關鍵方法,最后還探索了Fraction的生命周期,當然 Fraction 也有缺陷 在實際開發中,我們可能需要讓Fraction嵌套Fraction,目前鴻蒙還不支持Fraction嵌套Fraction。所以在使用過程中我們要避免Fraction嵌套走彎路。

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

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

https://harmonyos.51cto.com

 

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

2022-02-19 07:41:36

Bean注解項目

2022-02-20 07:28:13

Spring注解用法

2011-06-21 10:37:56

const

2021-04-18 07:58:22

SQL Server數據庫Apply

2016-09-23 10:34:32

JUnitGradleAgile

2023-12-29 08:37:59

2011-07-14 15:05:54

PHP

2011-07-14 23:27:05

C++引用

2021-12-06 15:10:01

鴻蒙HarmonyOS應用

2020-11-05 11:30:46

PythonNumPy數組

2011-07-15 01:29:39

C++析構函數

2011-07-14 23:34:56

SEO

2011-07-14 17:02:09

C++指針

2011-07-14 17:17:21

C++指針

2011-07-06 14:21:15

ASP

2010-11-01 06:43:21

PowerShell

2011-07-05 10:39:55

JVM

2021-09-09 14:49:26

鴻蒙HarmonyOS應用

2010-06-22 09:28:31

Linux at命令

2010-10-15 11:16:52

MySQL Show語
點贊
收藏

51CTO技術棧公眾號

一区二区成人在线| 国内成人免费视频| 尤物九九久久国产精品的分类| 欧美第一页浮力影院| www免费在线观看| 91在线视频18| 91欧美激情另类亚洲| 九九热国产精品视频| 窝窝社区一区二区| 欧美精品一二三区| 久久综合色视频| 中文字幕日本在线| 成人精品小蝌蚪| 国产精品久久婷婷六月丁香| 国产精品9191| 日韩在线二区| 日韩精品中文字幕在线播放| 色噜噜狠狠一区二区三区狼国成人| 蜜桃视频www网站在线观看| 国产精品乱码久久久久久 | 天天综合在线观看| 五月激情六月综合| 国产911在线观看| 国产福利免费在线观看| 成人网页在线观看| 国产中文日韩欧美| 丁香社区五月天| 亚洲黄色精品| 久久99久国产精品黄毛片入口| 欧美精品日韩在线| 欧美极品中文字幕| 亚洲第一网中文字幕| 国产伦精品一区二区三区妓女下载 | 国产三级国产精品国产专区50| gratisvideos另类灌满| 亚洲欧美色图小说| 亚洲一区三区| a视频网址在线观看| 久久奇米777| 国产专区一区二区| 亚洲美女福利视频| 国产精品一区二区男女羞羞无遮挡 | 亚洲精品国产成人| 免费黄色av网址| 国产乱码精品一区二区三区亚洲人| 欧美亚日韩国产aⅴ精品中极品| 亚洲乱码中文字幕久久孕妇黑人| av中文字幕在线看| 亚洲一区二区欧美激情| 亚洲中文字幕无码一区二区三区| 黄色网址免费在线观看| 亚洲人成小说网站色在线| 亚洲高清视频一区二区| 在线观看麻豆蜜桃| 国产精品国产三级国产aⅴ入口 | 久久高清一区| 57pao成人国产永久免费| 国产 欧美 日韩 在线| 亚洲激情av| 97不卡在线视频| 久久国产精品免费看| 久久亚洲图片| 国产精品美女www爽爽爽视频| 中文字幕在线天堂| 美腿丝袜在线亚洲一区| 成人免费在线视频网站| 超碰在线人人干| proumb性欧美在线观看| 久久精品国产第一区二区三区最新章节 | 亚洲精品影视在线观看| 久久精品成人av| 欧美综合视频| 久久亚洲精品网站| 国产在线观看免费视频今夜| 亚洲人成人一区二区三区| 7m第一福利500精品视频| 欧美日韩综合一区二区三区| 日韩av一级电影| 91九色国产在线| 欧美一区二区三区激情| 国产日韩欧美一区二区三区乱码| 一区二区三区四区欧美| 欧美日韩经典丝袜| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 3d玉蒲团在线观看| 五月婷婷激情综合| 日本爱爱免费视频| 中文字幕视频精品一区二区三区| 日韩大片在线观看视频| 国产传媒视频在线| 韩国精品一区二区三区| 国产精彩精品视频| www.97超碰| 欧美高清在线精品一区| 大地资源网在线观看免费官网| 成人超碰在线| 欧美日韩日本视频| 中国极品少妇xxxx| 成人高清av| 97免费视频在线播放| 中文字幕一区二区三区人妻四季| 懂色av一区二区在线播放| 日韩免费一区二区三区| 丁香高清在线观看完整电影视频 | 欧美特黄一级视频| 国产精品美女一区二区| 久久久亚洲精品无码| 亚洲日韩中文字幕一区| 亚洲精品国产精品国自产在线| 久久爱一区二区| 久久亚洲国产精品一区二区| 成人在线看片| 国产秀色在线www免费观看| 色综合天天狠狠| 制服丝袜在线第一页| 五月精品视频| 国产精品视频男人的天堂| 亚洲三级黄色片| 亚洲一级二级三级在线免费观看| 亚洲 欧美 另类人妖| 亚洲第一二三区| 91精品国产电影| www.狠狠干| 亚洲人成7777| 日日干日日操日日射| 精品国精品国产自在久国产应用| 57pao国产成人免费| 欧洲精品久久一区二区| 亚洲精品菠萝久久久久久久| 亚洲欧美日韩一级| 久久99精品久久久久久园产越南| 午夜精品三级视频福利| 亚洲精品喷潮一区二区三区| 亚洲欧洲日产国码二区| 香蕉视频网站入口| 久久99精品久久久久久园产越南| 久久久免费电影| 午夜精品久久久久久久爽 | 农民人伦一区二区三区| 视频一区日韩精品| 欧美黑人巨大xxx极品| 国产露脸91国语对白| 国产精品久久毛片av大全日韩| 欧美日韩大尺度| 国产videos久久| 日韩免费中文字幕| 国产高清美女一级毛片久久| 日本韩国精品在线| 色欲狠狠躁天天躁无码中文字幕| 日韩中文字幕麻豆| 色姑娘综合av| 欧美jizz18| 久久久av网站| 国产成人三级在线播放 | 中文字幕日韩av综合精品| 波多野结衣爱爱| 国产精品污污网站在线观看| 777视频在线| 亚洲激情五月| 官网99热精品| 中文字幕在线看片| 中文字幕国产日韩| hs视频在线观看| 亚洲综合男人的天堂| 美女露出粉嫩尿囗让男人桶| 国产亚洲精品v| 欧美日韩另类综合| 久久国内精品| 色与欲影视天天看综合网| 少妇精品视频一区二区| 日本韩国一区二区三区视频| 小嫩苞一区二区三区| 国产成人精品亚洲日本在线桃色| 一二三四视频社区在线| 国产精品羞羞答答在线观看| 成人有码在线播放| 黄色在线免费观看网站| 亚洲欧美制服另类日韩| 国产视频在线一区| 亚洲超碰精品一区二区| 国产精品国产三级国产专业不| 国产一区二区网址| 男女高潮又爽又黄又无遮挡| 久久一区二区三区喷水| 国产精品美女黄网| 免费污视频在线一区| 欧美老女人性生活| 男同在线观看| 日韩欧美国产一区二区三区 | 免费在线国产视频| 亚洲人成电影网站色…| aaaa一级片| 色综合久久综合网欧美综合网| 日本 欧美 国产| 99re热这里只有精品视频| 精品国产91久久久久久浪潮蜜月| 久久视频一区二区| 日韩av片网站| 欧美三级不卡| 亚州欧美一区三区三区在线| 亚洲精品一区国产| 国产成人av在线播放| 污污的网站在线免费观看| 亚洲免费视频在线观看| 精品乱子伦一区二区| 黑人巨大精品欧美一区二区三区| 色老板免费视频| 久久久噜噜噜久噜久久综合| 好吊操视频这里只有精品| 免费高清在线一区| 国模吧无码一区二区三区| 一区二区三区午夜探花| 青青草成人激情在线| 欧美顶级毛片在线播放| 91中文在线视频| 国产成人午夜性a一级毛片| 91av视频在线播放| 欧美v亚洲v| 久久九九免费视频| av在线播放网站| 亚洲美女动态图120秒| 丰满少妇高潮在线观看| 91精品中文字幕一区二区三区| 国产精品尤物视频| 欧美丝袜一区二区| 日韩欧美三级在线观看| 亚洲一级二级三级在线免费观看| 午夜激情福利网| 国产精品午夜免费| 99久久99久久精品免费看小说.| 2020国产精品| 女人被狂躁c到高潮| 成人激情校园春色| 国产乱淫av麻豆国产免费| 国产乱码精品一区二区三 | 国产真实乱在线更新| 国产精品毛片a∨一区二区三区| 88久久精品无码一区二区毛片| 91麻豆免费看| 无码国产69精品久久久久同性| 91首页免费视频| 人妻少妇精品视频一区二区三区| 99久久伊人精品| 中文文字幕文字幕高清| 不卡电影一区二区三区| wwwxx日本| 99精品国产91久久久久久| 韩国三级hd两男一女| 99在线视频精品| 成人免费看aa片| www久久精品| 少妇无套高潮一二三区| 国产农村妇女毛片精品久久麻豆| 免费成人深夜天涯网站| 国产精品久久久久久久久免费樱桃| 性少妇xx生活| 亚洲美女少妇撒尿| 久久久久久久国产精品毛片| 五月天欧美精品| 无码人妻av免费一区二区三区 | 国产精品成人一区| 欧美日韩女优| 成人免费观看a| www.豆豆成人网.com| 九色91国产| 日韩欧美三级| 日本黄色片一级片| 亚洲少妇一区| 鲁一鲁一鲁一鲁一av| 国产自产视频一区二区三区| 亚洲国产精品第一页| 91丨九色丨蝌蚪丨老版| 国产精品麻豆一区| 亚洲尤物视频在线| 国产农村妇女aaaaa视频| 欧美日韩亚洲高清一区二区| a级片在线免费看| 亚洲美女又黄又爽在线观看| 午夜毛片在线| 97激碰免费视频| 电影一区二区| 国产91视觉| 欧美色女视频| 免费看欧美黑人毛片| 日韩精品乱码免费| 丰满少妇一区二区三区专区| 久久婷婷综合激情| 东方av正在进入| 日韩欧美在线播放| 国产高清第一页| 亚洲欧洲一区二区三区久久| 4438x成人网全国最大| 国产不卡精品视男人的天堂| 日韩激情综合| 亚洲精品成人三区| 极品尤物久久久av免费看| 美女一区二区三区视频| www.亚洲色图.com| 欧美特黄一级片| 色香蕉久久蜜桃| 亚洲第一成年人网站| 一区二区三欧美| 欧美激情网站| 亚洲综合精品伊人久久| 欧美色爱综合| 亚洲精品无码久久久久久| 国产精品亚洲综合一区在线观看| 美女爆乳18禁www久久久久久| 亚洲伊人伊色伊影伊综合网| 亚洲视屏在线观看| 日韩福利在线播放| 欧美黑人xx片| 91老司机在线| 国产一区二区在线| 丝袜老师办公室里做好紧好爽| 国产成人一级电影| 黄色录像免费观看| 91福利国产成人精品照片| 天堂中文在线资源| 欧美激情国产精品| 欧美专区一区| 中文字幕综合在线观看| 青青草国产精品亚洲专区无| 少妇特黄一区二区三区| 午夜精品久久久久久久久久久| 成人福利小视频| 久久99久久99精品中文字幕 | 欧美一区二区视频在线观看2022 | 男女视频在线看| 久久精品欧美日韩精品 | 在线播放视频一区| 午夜视频在线免费观看| 国产美女久久精品| 波多野结衣一区| 欧美三级理论片| 中文字幕不卡在线| 最好看的日本字幕mv视频大全| 亚洲人成在线观| 日韩欧美精品电影| 日本一区视频在线观看| 首页国产欧美久久| www.99热| 在线播放国产精品二区一二区四区| 日本高清中文字幕在线| 成人国产亚洲精品a区天堂华泰| 国产精品久久占久久| 在线免费看v片| 一区二区视频在线看| 亚洲AV无码成人片在线观看| 欧美激情视频一区二区三区不卡| 在线精品国产亚洲| 国产美女在线一区| 91日韩一区二区三区| 无码人妻丰满熟妇精品区| 国产亚洲精品高潮| 日韩一级特黄| 精品福利免费观看| 精品人妻一区二区三区换脸明星| 精品自拍视频在线观看| 在线精品自拍| 亚洲午夜无码av毛片久久| 国产亚洲va综合人人澡精品| 亚洲一卡二卡在线观看| 久久成人精品视频| 成人台湾亚洲精品一区二区| 黄色免费视频大全| 国产精品免费观看视频| 亚洲AV无码一区二区三区性| 91国自产精品中文字幕亚洲| 国产va免费精品观看精品视频| 亚洲无在线观看| 亚洲国产综合色| 国产资源在线观看| 91香蕉亚洲精品| 亚洲看片一区| 黄色国产在线播放| 精品久久久久一区| 91久久久久久白丝白浆欲热蜜臀| 国产a级片免费看| av色综合久久天堂av综合| 成人免费一级片| 欧美激情18p| 狠狠色狠狠色综合婷婷tag| 中文字幕在线视频精品| 亚洲3atv精品一区二区三区| xxxxx日韩| 国产精品二区二区三区| 丝袜美腿成人在线| 精品视频一区二区在线观看| 国产亚洲欧美另类中文| 亚洲欧美日本国产| 一级特黄性色生活片| 亚洲一区欧美一区| 69久久久久| 九九99久久| 国产一区二区三区免费播放| 亚洲精品男人的天堂| 欧美男插女视频| 日韩中文在线电影| 无码人妻精品一区二区三区温州|