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

鴻蒙OS應用開發實踐(三)

系統
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com/#zz

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

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

https://harmonyos.51cto.com/#zz

經過前兩篇的學習,我們了解了DevEco運行一個程序的基本流程和一個鴻蒙OS應用項目的代碼結構。

用一句《三體》格式的話說:跑得動hello world,我們就是同志了。

這一篇,我們就自己手動擼一個簡單的鴻蒙交互程序:從一個頁面跳轉到另一個頁面。

(一)創建工程

先創建一個新的TV的empty java工程:


點finish后,發現這次從創建到項目環境加載完成,用了很短的時間,這是因為初始環境需要各種配置和下載,類似我們初下完一個大型游戲,首次需要更新內容一般。


(二)自定義布局

進入界面后,默認的IDE已經創建了一個hello world程序,我們打開entry -> src -> main ->resources -> base -> layout -> ability_main.xml 布局文件:

我們先清掉原本的布局,重新寫入我們自己的布局:

  1. xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  2.  
  3. ohos:width="match_parent" 
  4.  
  5. ohos:height="match_parent" 
  6.  
  7. ohos:background_element="#000000"
  8.  
  9.  
  10. ohos:id="$+id:text" 
  11.  
  12. ohos:width="match_content" 
  13.  
  14. ohos:height="match_content" 
  15.  
  16. ohos:center_in_parent="true" 
  17.  
  18. ohos:text="你好,鴻蒙OS" 
  19.  
  20. ohos:text_color="white" 
  21.  
  22. ohos:text_size="32fp"/> 
  23.  
  24. ohos:width="match_content" 
  25.  
  26. ohos:height="match_content" 
  27.  
  28. ohos:text_size="20fp" 
  29.  
  30. ohos:text="跳轉" 
  31.  
  32. ohos:left_margin="50vp" 
  33.  
  34. ohos:bottom_margin="50vp" 
  35.  
  36. ohos:right_padding="80vp" 
  37.  
  38. ohos:left_padding="80vp" 
  39.  
  40. ohos:text_color="white" 
  41.  
  42. ohos:background_element="$graphic:button_element" 
  43.  
  44. ohos:center_in_parent="true" 
  45.  
  46. ohos:align_parent_bottom="true"/> 

 <DependentLayout>標簽指定了這是一個相對位置布局,意思就是布局里的每個組件可以指定相對于其他同級組件的位置,也可以指定相對于父組件的位置。

<Button>標簽表示了這里將會布局創建一個按鈕,大部分設置信息同Text。 

按鈕的背景指定了“button_element”來顯示,這是另外一個布局文件,我們來手動創建,在resources -> base ->graphic 目錄下,右鍵創建一個File,命名為:button_element.xml


button_element.xml添加如下代碼:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. <shape 
  4.  
  5.     xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  6.  
  7.     ohos:shape="rectangle"
  8.  
  9.     <corners 
  10.  
  11.         ohos:radius="10"/> 
  12.  
  13.     <solid 
  14.  
  15.         ohos:color="#FF007DFF"/> 
  16.  
  17. </shape> 

目前鴻蒙官方提供形狀:rectangle(方形)和oval(橢圓),通過不同的內外邊距設定,就可以衍生出其他形狀:圓形,橢圓,正方,膠囊。

標簽表示了圓角設定,將方形設定圓角,我們就可以得到一個圓角按鈕。

默認的模版使用的是方向布局DirectionLayout(垂直或者橫向),這里我們修改使用DependentLayout相對位置布局,這樣可以更加方便的控制文本和按鈕的相對位置。

運行效果:


(三)創建建跳轉頁面

當然,當前點擊跳轉按鈕不會有任何反應,一方面我們還沒寫交互邏輯,另一方面,我們要跳轉的頁面也還沒寫。我們繼續下一步,寫一個新的頁面。

在項目對應的目錄下,創建一個空的FA(java),如下圖:

 

這里我們將新頁面命名為:NewPage 


下面兩項不勾選,直接點finish。

創建后,目錄下除了剛才創建的newpage,還會自動創建一個newpageslice在slice目錄下以及對應的布局文件在layout目錄下:

 之前在跑hello world的時候,我們說過,ability是入口,邏輯代碼都在slice里,同樣,在這個newpage里,它也是將邏輯route到了slice類中。

我們打開ability_new_page.xml,簡單修改下輸出文本:


(四)主頁面添加交互邏輯

到這里,我們的第二個頁面算是簡單的創建完畢了,下一步,我們需要在主頁面下添加交互邏輯,讓它可以跳轉到這個新的slice頁面中來,在主頁面(MainAbilitySlice)中去添加按鈕點擊的事件邏輯:

  1. Button btn = (Button) findComponentById(ResourceTable.Id_button); 
  2.  
  3. if (btn != null) { 
  4.  
  5. //添加按鈕點擊事件監聽 
  6.  
  7. btn.setClickedListener(new Component.ClickedListener() { 
  8.  
  9. @Override 
  10.  
  11. public void onClick(Component component) { 
  12.  
  13. Intent newpageIntent = new Intent(); 
  14.  
  15. //指定目標頁面 
  16.  
  17. Operation operation = new Intent.OperationBuilder() 
  18.  
  19. .withDeviceId("") .withBundleName("com.qibiao.harmonyosdemo") .withAbilityName("com.qibiao.harmonyosdemo.NewPage") .build(); 
  20.  
  21. newpageIntent.setOperation(operation); 
  22.  
  23. //啟動目標頁面 
  24.  
  25. startAbility(newpageIntent); 
  26.  
  27. } }); 
  28.  

 這里會要求import新的包,以提供組件模塊,不然上面的代碼輸完是會標紅報錯的。需要引入的包:

import ohos.aafwk.content.Operation;

import ohos.agp.components.Button;

import ohos.agp.components.Component;

解析下代碼:

findComponentById通過id來找到按鈕組件,然后這個id對應的就是我們在布局文件中設置的:

ohos:id="$+id:button"

onClick對應按鈕的點擊事件,這個不是自定義函數,屬于事件觸發函數。

Intent上回說過了,它是一個中間件,協助當前頁面往新頁面通訊。

Operation operation = new Intent.OperationBuilder()

.withDeviceId("") .withBundleName("com.qibiao.harmonyosdemo") .withAbilityName("com.qibiao.harmonyosdemo.NewPage") .build();

這串代碼指定了我們要跳轉的目標頁面,需要指定目標的包名,還有Ability名稱(非slice)。

最后使用startAbility()接口啟動那個頁面。

(五)運行

再次運行查看效果(先開遠程虛擬設備,再點運行):

效果出來了,點擊右側的返回,還能回到主界面。

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

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

https://harmonyos.51cto.com/#zz

 

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

2020-12-18 10:42:14

鴻蒙開發應用

2020-12-03 10:05:07

鴻蒙OS

2020-12-04 09:52:22

鴻蒙OS

2022-07-15 12:58:02

鴻蒙攜程華為

2022-08-04 10:12:49

桌面技術

2021-01-15 11:36:16

鴻蒙HarmonyOSAI應用

2010-03-02 11:12:33

Android應用開發

2019-06-25 15:56:58

鴻蒙華為操作系統

2012-12-13 09:47:50

2012-09-17 11:19:49

IBMdw

2023-02-23 15:56:51

2025-05-09 06:30:52

2013-12-17 14:07:37

2022-11-30 10:34:17

2013-01-11 15:06:13

iOS開發移動應用iPhone

2010-04-20 09:14:33

Struts

2021-09-18 10:23:43

Serverless

2024-08-28 17:55:43

HarmonyOS

2022-01-06 09:55:19

鴻蒙HarmonyOS應用

2020-09-28 15:13:04

鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产特级毛片 | 请别相信他免费喜剧电影在线观看 | 久久精品成人一区 | 精品成人免费一区二区在线播放 | 国产精品国产三级国产aⅴ原创 | 午夜免费视频 | 日韩欧美精品在线 | 精品1区2区 | 超碰成人免费 | 99精品一区二区 | 久久69精品久久久久久久电影好 | 亚洲美乳中文字幕 | 久久精品女人天堂av | 欧美日韩三级 | 日日摸夜夜爽人人添av | 日韩精品免费 | 日一区二区 | 久草福利 | 在线播放中文字幕 | 成人黄色在线观看 | 亚洲三级国产 | 日韩一区二区三区在线观看 | 九九色综合 | 三级在线视频 | 国产福利资源 | 国产欧美在线视频 | 国产激情在线 | 二区三区视频 | 日韩精品久久久久久 | 国产91在线播放精品91 | 91 在线 | 亚洲最新网址 | 日本高清视频在线播放 | 欧美a级成人淫片免费看 | 久久久久久久久久久91 | 日韩精品一区二区三区中文在线 | 一区二区日韩精品 | 日韩中文一区二区三区 | 91一区 | 亚洲精选一区二区 | 性一交一乱一透一a级 |