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

知識分享—利用Tab搭建頁面切換框架

系統 OpenHarmony
在本期的知識分享中,筆者將展示如何利用Tab搭建一個頁面切換的框架,希望能為讀者們帶來幫助與啟發。

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

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

??https://ost.51cto.com??

前言

Tab,即多頁簽,是我們在前端開發中常用的一種組件。當前市面上的大多數應用軟件的基礎UI界面,都會利用Tab組件構建一個頁面切換框架,而最經典的就是微信的用戶界面。Tab組件所搭建的頁面切換框架,能夠實現一個非常實用的功能——當用戶左右滑動屏幕或點擊Tab時可以自由切換包含不同業務功能的界面。在本期的知識分享中,筆者將展示如何利用Tab搭建一個頁面切換的框架,希望能為讀者們帶來幫助與啟發。

正文

創建工程

打開DevEco Studio,選擇Empty Ability模板,創建一個新工程(相關選項的勾選如圖);

完成xml布局

在項目的目錄中,打開entry>src>main>resource>base>layout>ability_main_xml,刪除系統自帶的Text組件,在DirectionLayout中加入如下代碼:

    <PageSlider
ohos:height="0"
ohos:width="match_parent"
ohos:id="$+id:Slider"
ohos:weight="1"
ohos:background_element="#ffffff"
/>
<TabList
ohos:height="80vp"
ohos:width="match_parent"
ohos:id="$+id:List"
ohos:background_element="gray"
ohos:orientation="horizontal"/>

此處加入了兩個組件——PageSlider與TabList。

加入代碼后的示例圖:

在AbilitySlice中配置PageSlider并承載三個用戶界面

在項目的目錄中,打開entry>src>main>java>com.example.demo>slice>MainAbilitySlice,先在onStart函數的上方加入如下代碼:

public class MainAbilitySlice extends AbilitySlice {
private PageSlider mPageSlider; //創建PageSlider類的對象
private ArrayList<Component>mPageview; //創建需要PageSlider對象管理的用戶界面列表
private TabList mTabList; //創建TabList類的對象
@Override
public void onStart(Intent intent) {
...
}

之后,在onStart函數的{ }內中加入如下代碼:

//獲取PageSlider對象
mPageSlider=(PageSlider) findComponentById(ResourceTable.Id_Slider);
//創建PageSlider所需要承載界面的列表
mPageview=new ArrayList<Component>();
mPageview.add(generateTextComponent("第一個界面"));
mPageview.add(generateTextComponent("第二個界面"));
mPageview.add(generateTextComponent("第三個界面"));

//實例化PageSliderProvider,為PageSlider提供界面
mPageSlider.setProvider(new PageSliderProvider() {
@Override
public int getCount() {
//界面數量
return mPageview.size();
}
@Override
public Object createPageInContainer(ComponentContainer componentContainer, int i) {
//添加用戶界面
componentContainer.addComponent(mPageview.get(i));
return mPageview.get(i);
}
@Override
public void destroyPageFromContainer(ComponentContainer componentContainer, int i, Object o) {
//添加用戶界面
componentContainer.removeComponent(mPageview.get(i));
}
@Override
public boolean isPageMatchToObject(Component component, Object o) {
return component == o;
}
});

最后,在onStart函數的下方加入如下代碼:

 @Override
public void onStart(Intent intent) {
...
}
private Text generateTextComponent(String content) {
Text text = new Text(this);
text.setLayoutConfig(new ComponentContainer.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_PARENT,
ComponentContainer.LayoutConfig.MATCH_PARENT));
text.setTextAlignment(TextAlignment.CENTER);
text.setText(content);
text.setTextSize(80);
return text;
}

加入代碼后的示例圖:

在AbilitySlice中為TabList添加Tab

仍然是在MainAbilitySlice中的onStart函數的{ }內加入代碼:

  mTabList =(TabList) findComponentById(ResourceTable.Id_List);  //獲取mTabList對象
mTabList.setTabLength(getResourceManager().getDeviceCapability().width); //設置TabList的Tab總寬度
//利用for循環定義Tab對象,并將其加入mTabList中
for(int i=0;i<3;i++) {
TabList.Tab tab = mTabList.new Tab(this);
tab.setText("界面" + (i + 1));
tab.setMarginsLeftAndRight(10,10);
tab.setTag(i);
mTabList.addTab(tab);
}
//設置監聽器
mTabList.addTabSelectedListener(new TabList.TabSelectedListener() {
@Override
public void onSelected(TabList.Tab tab) {
mPageSlider.setCurrentPage((int) tab.getTag());
}
@Override
public void onUnselected(TabList.Tab tab) {
}
@Override
public void onReselected(TabList.Tab tab) {
}
});

完成上述操作之后,打開Previewer,我們便能看到用Tab組件搭建的頁面切換框架。向左右方向滑動,或者點擊灰色區域的按鈕,便可實現界面的切換。

結尾

本期的知識分享到這里就結束了。

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

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

??https://ost.51cto.com??

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

2012-05-22 11:15:37

jQuery

2010-01-04 14:14:43

Silverlight

2022-03-02 15:47:57

Dialog組件UI設計鴻蒙

2011-05-31 09:23:58

Android Activity

2018-10-09 15:00:43

Hadoop分布式架構

2013-08-27 14:40:03

系統監控

2021-01-13 13:51:04

鴻蒙HarmonyOSTab選項卡

2011-08-11 14:09:27

iPhoneModalViewCoView

2024-10-17 09:02:16

2016-12-13 10:07:50

JAVA框架搭建

2013-07-08 15:41:07

Ubuntu

2011-04-13 14:19:52

Asp.Net.Net

2015-07-29 10:36:05

hadoop數據挖掘

2011-07-22 10:01:58

IOS SDK Twitter

2024-07-09 10:42:30

2023-02-08 08:47:13

計算機網絡MAC

2010-06-03 19:02:31

Hadoop集群搭建

2015-07-16 14:40:20

簡化切換框架

2023-06-04 00:06:27

2020-12-03 09:01:29

Django
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美亚洲高清 | 久久久在线视频 | 一区二区三区在线免费观看 | 91一区二区三区在线观看 | 免费在线成人 | 久久高清免费视频 | 亚洲欧洲视频 | 欧美一区二区在线播放 | 伊人狠狠操 | 久久国产精品网站 | 全免一级毛片 | 久久国内 | 日韩成人中文字幕 | 毛片区 | 亚洲一区二区三区在线视频 | 羞视频在线观看 | 色综合99 | 青青久在线视频 | 在线免费观看毛片 | 亚洲国产一区二区三区四区 | 国产www在线 | 欧美精品在线观看 | 中文字幕日韩欧美一区二区三区 | 91免费版在线观看 | 欧美二区在线 | 久久精品国产99国产精品 | 高清av在线 | 在线观看av网站永久 | 国产成人精品a视频一区www | 性高湖久久久久久久久3小时 | 亚州精品天堂中文字幕 | 羞羞视频免费观看入口 | 人人干人人干人人 | 日本免费黄色 | 亚洲人的av| 黄色国产| 久久久久久精 | 新91 | 国产三级 | 蜜桃毛片 | 色欧美片视频在线观看 |