hbuilder跳轉頁面代碼,Harmony OS — PageSlider滑動頁面

 2023-12-25 阅读 30 评论 0

摘要:文章目錄1、PageSlider 是什么?2、簡單使用3、常用方法4、了解更多 1、PageSlider 是什么? 簡單:滑動頁面 官方:PageSlider是用于頁面之間切換的組件,它通過響應滑動事件完成頁面間的切換。 2、簡單使用 創建適配器 繼承 PageSliderProvi

文章目錄

    • 1、PageSlider 是什么?
    • 2、簡單使用
    • 3、常用方法
    • 4、了解更多

1、PageSlider 是什么?

簡單:滑動頁面
官方:PageSlider是用于頁面之間切換的組件,它通過響應滑動事件完成頁面間的切換。

2、簡單使用

在這里插入圖片描述
創建適配器 繼承 PageSliderProvider.java
在這里插入圖片描述

TestPagerProvider.java

package com.testruiwang.myapplication3.slice;
import ohos.agp.colors.RgbColor;
import ohos.agp.components.*;
import ohos.agp.components.element.ShapeElement;
import ohos.agp.utils.Color;
import ohos.agp.utils.TextAlignment;
import java.util.List;public class TestPagerProvider extends PageSliderProvider {// 數據源,每個頁面對應list中的一項private List<DataItem> list;public TestPagerProvider(List<DataItem> list) {this.list = list;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object createPageInContainer(ComponentContainer componentContainer, int i) {final DataItem data = list.get(i);Text label = new Text(null);label.setTextAlignment(TextAlignment.CENTER);label.setLayoutConfig(new StackLayout.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_PARENT,ComponentContainer.LayoutConfig.MATCH_PARENT));label.setText(data.mText);label.setTextColor(Color.BLACK);label.setTextSize(50);ShapeElement element = new ShapeElement();element.setRgbColor(RgbColor.fromArgbInt(Color.getIntColor("#AFEEEE")));label.setBackground(element);componentContainer.addComponent(label);return label;}@Overridepublic void destroyPageFromContainer(ComponentContainer componentContainer, int i, Object o) {componentContainer.removeComponent((Component) o);}@Overridepublic boolean isPageMatchToObject(Component component, Object o) {return true;}//數據實體類public static class DataItem{String mText;public DataItem(String txt) {mText = txt;}}
}

MainAbilitySlice.java

 @Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);initPageSlider();}private void initPageSlider() {PageSlider pageSlider = (PageSlider) findComponentById(ResourceTable.Id_page_slider);pageSlider.setProvider(new TestPagerProvider(getData()));}private ArrayList<TestPagerProvider.DataItem> getData() {ArrayList<TestPagerProvider.DataItem> dataItems = new ArrayList<>();dataItems.add(new TestPagerProvider.DataItem("Page A"));dataItems.add(new TestPagerProvider.DataItem("Page B"));dataItems.add(new TestPagerProvider.DataItem("Page C"));dataItems.add(new TestPagerProvider.DataItem("Page D"));return dataItems;}

ability_main.xml

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:alignment="center"ohos:orientation="vertical"><PageSliderohos:id="$+id:page_slider"ohos:height="300vp"ohos:width="300vp"ohos:layout_alignment="horizontal_center"/></DirectionalLayout>

3、常用方法

在這里插入圖片描述

(1)響應頁面切換事件

        pageSlider.addPageChangedListener(new PageSlider.PageChangedListener() {@Overridepublic void onPageSliding(int itemPos, float itemPosOffset, int itemPosPixles) { }@Overridepublic void onPageSlideStateChanged(int state) { }@Overridepublic void onPageChosen(int itemPos) { }});

(2)設置橫向布局
在這里插入圖片描述

<PageSlider...ohos:orientation="vertical"/>
pageSlider.setOrientation(Component.VERTICAL);

(3)設置保留當前頁面兩側的頁面數

<PageSlider...ohos:page_cache_size="2"/>
pageSlider.setPageCacheSize(2);

(4)設置當前展示頁面

pageSlider.setCurrentPage(2);

(5)平滑滾動到指定頁面

pageSlider.setCurrentPage(2,true);

(6)設置是否啟用頁面滑動

pageSlider.setSlidingPossible(false);

(7)設置回彈效果
在這里插入圖片描述

pageSlider.setReboundEffect(true);

(8)設置頁面切換時間,單位:ms

pageSlider.setPageSwitchTime(2000);

4、了解更多

PageSlider 更多

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/194745.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息