精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产理论在线观看| 中文字幕精品一区二| 人妖一区二区三区| 在线观看www91| 中文字幕一区二区三区乱码 | 91久久精品美女| 国产一级视频在线| 国产一区二区三区四区二区| 91精品国产综合久久婷婷香蕉| 欧美成人三级在线视频| 欧美黄色激情| 91亚洲午夜精品久久久久久| 国产在线精品播放| 日韩av男人天堂| 我不卡神马影院| 亚洲精品视频免费在线观看| 日韩av一卡二卡三卡| 成人观看网址| 亚洲欧洲综合另类| 欧美精品一区二区三区四区五区| 99精品国产99久久久久久97| 日韩国产在线观看一区| 欧美精品videos另类日本| 高清国产在线观看| 欧美a一欧美| 日韩欧美国产一区二区三区| 校园春色 亚洲色图| 中文不卡1区2区3区| 一区二区三区精品在线| 亚洲国产精品一区二区第一页 | 久久这里只有精品23| 瑟瑟视频在线| 久久久国产精品不卡| 国产精品日韩高清| 精品国产亚洲AV| 免费av网站大全久久| 日韩av日韩在线观看| 男人天堂中文字幕| 亚洲一级一区| 欧美美女15p| 欧美日韩在线观看免费| 希岛爱理av一区二区三区| 在线观看日韩www视频免费| 国产精品无码一区二区三区免费 | 精品三级在线观看| 国产精品嫩草影视| 国产aa精品| 欧美福利视频导航| 911av视频| 精品国产乱码久久久久久樱花| 欧美色网站导航| 久久久精品麻豆| 黄色成人在线观看网站| 欧美日韩亚洲国产综合| 国产日韩欧美久久| 中文成人在线| 在线不卡a资源高清| 三级av免费观看| 精品久久福利| 制服丝袜日韩国产| 4438x全国最大成人| 美女日韩一区| 亚洲白拍色综合图区| 91丝袜在线观看| 日韩精品导航| 国产亚洲精品久久久| 99久久99久久精品免费| 亚洲澳门在线| 欧美寡妇偷汉性猛交| 日本最新中文字幕| 久久天堂成人| 国产欧美久久久久久| 国产精品无码AV| 国产成人在线观看免费网站| 黄色小网站91| 黄色av网站在线看| 亚洲手机成人高清视频| www.好吊操| 厕沟全景美女厕沟精品| 欧美性感一类影片在线播放| www.午夜av| 福利电影一区| 日韩乱码在线视频| 可以免费看av的网址| 欧美精品97| 热久久免费视频精品| 中文有码在线播放| 国产91精品免费| 欧美精品中文字幕一区二区| 美女国产在线| 亚洲成va人在线观看| 爆乳熟妇一区二区三区霸乳| av日韩久久| 亚洲国产婷婷香蕉久久久久久| 一区二区三区四区免费| 女人色偷偷aa久久天堂| 欧美在线一级视频| 国产免费黄色录像| 久久久五月婷婷| 婷婷视频在线播放| 波多野结衣久久精品| 欧美一区二区三区色| 香蕉网在线播放| 91精品国产自产拍在线观看蜜| 97色在线播放视频| 97人妻精品一区二区三区动漫| 972aa.com艺术欧美| 国产成人精品免费看在线播放 | 992tv免费直播在线观看| 亚洲青青青在线视频| 欧美黄色一级片视频| 一区二区三区免费在线看| 在线性视频日韩欧美| 国产无码精品视频| 国产精品影音先锋| 午夜精品区一区二区三| 岛国在线视频网站| 欧美一区午夜精品| 黄色免费一级视频| 老鸭窝毛片一区二区三区| 国产高清精品一区二区三区| 日本不卡三区| 欧美三级三级三级| 麻豆精品免费视频| 中文亚洲字幕| 国产精品成人一区二区三区| 黄色网页在线免费观看| 欧洲精品一区二区| 精品无人区无码乱码毛片国产| 亚洲第一网站| av一区观看| av网址在线免费观看| 欧美日韩日本视频| 国产一二三av| 奇米精品一区二区三区在线观看 | xxx在线播放| 午夜在线视频一区二区区别| 国产精品一区在线观看| 日本片在线观看| 欧美一区永久视频免费观看| 小嫩苞一区二区三区| 免费在线一区观看| 婷婷久久青草热一区二区 | 色又黄又爽网站www久久| 性高潮免费视频| 精品电影一区| 精品无码久久久久久久动漫| 51漫画成人app入口| 精品久久久久久久人人人人传媒| 国精品无码一区二区三区| 国产一区二区三区观看| 日本一二三区视频在线| 视频精品二区| 久久久在线免费观看| 亚洲国产精品久久久久爰性色| 亚洲午夜久久久久久久久久久 | 国产96在线亚洲| 欧美国产日韩免费| 午夜国产在线观看| 精品久久香蕉国产线看观看gif| 黄色片视频免费观看| 午夜一级在线看亚洲| 日韩精品av一区二区三区| 性欧美gay| 日韩在线免费av| av综合在线观看| 亚洲一区二区三区视频在线播放 | 自拍偷拍亚洲激情| 免费国偷自产拍精品视频| 欧美特黄一级| 欧美精品一区三区在线观看| 91综合国产| 美日韩精品免费观看视频| www香蕉视频| 丁香五六月婷婷久久激情| 91成人在线免费视频| 狠狠色丁香久久婷婷综合丁香| 国产女主播av| 亚洲第一论坛sis| 国产精品自在线| 欧美性受ⅹ╳╳╳黑人a性爽| 亚洲国产美女精品久久久久∴| 五月天婷婷激情| 亚洲欧美综合色| 免费看毛片的网站| 奇米精品一区二区三区在线观看| 免费观看亚洲视频| 国产欧美日韩影院| av日韩中文字幕| 激情都市亚洲| 欧美日本国产在线| 国际av在线| 欧美精品一区二区三区蜜桃视频 | 亚洲变态欧美另类捆绑| 中文字幕理论片| 午夜欧美在线一二页| 九九热久久免费视频| 成人精品电影在线观看| 香港日本韩国三级网站| 亚洲国产精品一区制服丝袜| 五月天色一区| 欧美日韩看看2015永久免费 | 99久久国产宗和精品1上映| 天堂美国久久| 久久综合久久久| 日韩影片在线观看| 国产精品久久久久77777| 成年网站在线视频网站| 色七七影院综合| 香蕉视频国产在线| 日韩欧美一二区| 中国老头性行为xxxx| 黄色一区二区在线观看| 看片网站在线观看| 国产精品第一页第二页第三页| 中文字幕a在线观看| 狠狠色丁香久久婷婷综合_中| 男人透女人免费视频| 亚洲精品影视| www.亚洲成人网| 久久久久亚洲| 亚洲欧洲久久| 九九久久婷婷| 久久精品国产综合精品| 成人春色在线观看免费网站| 91丨九色丨国产在线| 欧美成人毛片| 国产精品高清免费在线观看| 牛牛精品一区二区| 国内精品视频在线| 污污网站在线看| 欧美另类在线观看| 成人影欧美片| 久久久成人精品视频| 日本天堂在线观看| 中文字幕一区日韩电影| 成年人视频在线看| 伊人伊成久久人综合网小说| 精品美女视频在线观看免费软件| 亚洲精品电影久久久| 少妇av一区二区| 亚洲国产精品福利| 天天干,天天操,天天射| 亚洲精品一区二区三区精华液| 欧美少妇bbw| 亚洲国产精品久久久| 亚洲欧美黄色片| 亚洲高清一区二| 少妇一区二区三区四区| 亚洲精品电影网站| 欧美婷婷久久五月精品三区| 亚洲精品一二区| 国产在线观看高清视频| 正在播放欧美一区| 瑟瑟视频在线| 欧美国产中文字幕| а√在线中文在线新版| 欧美一区二区.| 78精品国产综合久久香蕉| 国产精品久久久久久av福利| 亚洲tv在线| 99国产在线视频| 极品国产人妖chinesets亚洲人妖| 精品国产一区二区三区麻豆免费观看完整版 | 精品国产1区2区| 精产国品一区二区| 欧美日韩视频不卡| 精品久久久中文字幕人妻| 亚洲国产精品va在线看黑人动漫| 四虎精品在线| 在线视频亚洲欧美| 亚洲欧美成人影院| 69av在线视频| 日韩毛片免费看| 国产精品污www一区二区三区| 一本久久青青| 宅男一区二区三区| 国产日韩1区| 亚洲36d大奶网| 成人97人人超碰人人99| 亚洲av成人无码久久精品| 亚洲欧美日韩在线不卡| 天天爽夜夜爽夜夜爽精品| 欧美性生活大片视频| www.com欧美| 亚洲天堂免费视频| 日本三级在线观看网站| 国产成人福利视频| 一本色道69色精品综合久久| 欧美在线视频一区二区三区| 中文字幕乱码亚洲无线精品一区 | 青青草影院在线观看| 91久久夜色精品国产九色| www.色偷偷.com| 成人免费高清视频| 男人在线观看视频| 日韩欧美国产高清91| 国产视频在线一区| 亚洲香蕉在线观看| 超碰97免费在线| 国产精品自在线| 岳的好大精品一区二区三区| 久久观看最新视频| 喷水一区二区三区| 男生裸体视频网站| 一区二区日韩av| 影音先锋国产资源| 亚洲精品永久免费| xxx性欧美| 亚洲free嫩bbb| 欧美综合视频| 国产成人无码一二三区视频| 成人在线一区二区三区| 777777国产7777777| 在线亚洲免费视频| 天天av综合网| 国内精品久久久久| 欧美a在线观看| 亚洲欧美综合一区| 男女激情视频一区| 法国空姐电影在线观看| 丁香五六月婷婷久久激情| 亚洲乱色熟女一区二区三区| 日韩中文娱乐网| 经典三级一区二区| 欧美日韩视频在线一区二区观看视频| 国产精品magnet| 日本r级电影在线观看| 国产精品久久国产精麻豆99网站| 无码人妻丰满熟妇区bbbbxxxx | 亚洲青色在线| 美女扒开腿免费视频| 一区二区三区中文字幕在线观看| 97人妻人人澡人人爽人人精品| 在线一区二区日韩| 成人在线不卡| 亚洲一区二区三区色| 视频一区视频二区在线观看| aaaaa一级片| 狠狠色狠狠色综合日日小说| 天天操天天操天天操| 午夜精品福利视频| 久久365资源| 91视频 -- 69xx| 91老师国产黑色丝袜在线| 久久久久久久黄色片| 日韩激情片免费| 范冰冰一级做a爰片久久毛片| 精品综合久久| 久久亚洲综合| 卡一卡二卡三在线观看| 欧美在线free| 日本中文字幕在线看| 成人午夜一级二级三级| 欧美日韩国产色综合一二三四| 国产精品99精品无码视亚| 性欧美疯狂xxxxbbbb| 亚洲AV第二区国产精品| 日本精品久久中文字幕佐佐木| 精品理论电影在线| 三上悠亚在线一区二区| 一区二区视频免费在线观看| 可以免费看毛片的网站| 欧美性在线视频| 欧美中文字幕一区二区| 欧美性受xxxx黒人xyx性爽| 亚洲在线视频免费观看| 亚州av在线播放| 国产精品∨欧美精品v日韩精品| 大片网站久久| 农村末发育av片一区二区| 欧美日韩亚洲激情| shkd中文字幕久久在线观看| 亚洲精品欧美日韩专区| 亚洲三级国产| 1024手机在线观看你懂的| 日韩一区二区精品在线观看| 人人草在线视频| 亚洲午夜精品久久久中文影院av| 国产乱对白刺激视频不卡| 99久热在线精品996热是什么| 一本色道久久综合狠狠躁篇怎么玩| 亚洲伦理久久| 日韩精品―中文字幕| 亚洲国产电影在线观看| 亚洲精品97久久中文字幕| 日韩美女在线观看| 中文字幕人成人乱码| www.超碰97| 欧美一区二区三区免费观看视频| 高潮在线视频| 综合网五月天| 91免费看片在线观看| 国产精品免费无遮挡| 欧美最猛性xxxx| 国产在线成人| 91麻豆精品久久毛片一级| 亚洲精品99999| 国产精品久久久久久久久久久久久久久| 日本丰满少妇xxxx|