短视频程序源码,PageSlider实现滑动页面
短视频程序源码,PageSlider实现滑动页面的相关代码
TestPagerProvider.java
1 | package com.testruiwang.myapplication3.slice;<br>import ohos.agp.colors.RgbColor;<br>import ohos.agp.components.*;<br>import ohos.agp.components.element.ShapeElement;<br>import ohos.agp.utils.Color;<br>import ohos.agp.utils.TextAlignment;<br>import java.util.List;<br> public class TestPagerProvider extends PageSliderProvider {<br> // 数据源,每个页面对应list中的一项<br> private List<DataItem> list;<br> public TestPagerProvider(List<DataItem> list) {<br> this.list = list;<br> }<br> @Override<br> public int getCount() {<br> return list.size();<br> }<br> @Override<br> public Object createPageInContainer(ComponentContainer componentContainer, int i) {<br> final DataItem data = list.get(i);<br> Text label = new Text(null);<br> label.setTextAlignment(TextAlignment.CENTER);<br> label.setLayoutConfig(<br> new StackLayout.LayoutConfig(<br> ComponentContainer.LayoutConfig.MATCH_PARENT,<br> ComponentContainer.LayoutConfig.MATCH_PARENT<br> ));<br> label.setText(data.mText);<br> label.setTextColor(Color.BLACK);<br> label.setTextSize(50);<br> ShapeElement element = new ShapeElement();<br> element.setRgbColor(RgbColor.fromArgbInt(Color.getIntColor("#AFEEEE")));<br> label.setBackground(element);<br> componentContainer.addComponent(label);<br> return label;<br> }<br> @Override<br> public void destroyPageFromContainer(ComponentContainer componentContainer, int i, Object o) {<br> componentContainer.removeComponent((Component) o);<br> }<br> @Override<br> public boolean isPageMatchToObject(Component component, Object o) {<br> return true;<br> }<br> //数据实体类<br> public static class DataItem{<br> String mText;<br> public DataItem(String txt) {<br> mText = txt;<br> }<br> }<br>} |
MainAbilitySlice.java
1 | @Override<br> public void onStart(Intent intent) {<br> super.onStart(intent);<br> super.setUIContent(ResourceTable.Layout_ability_main);<br> initPageSlider();<br> }<br> private void initPageSlider() {<br> PageSlider pageSlider = (PageSlider) findComponentById(ResourceTable.Id_page_slider);<br> pageSlider.setProvider( new TestPagerProvider(getData()));<br> }<br> private ArrayList<TestPagerProvider.DataItem> getData() {<br> ArrayList<TestPagerProvider.DataItem> dataItems = new ArrayList<>();<br> dataItems.add( new TestPagerProvider.DataItem( "Page A" ));<br> dataItems.add( new TestPagerProvider.DataItem( "Page B" ));<br> dataItems.add( new TestPagerProvider.DataItem( "Page C" ));<br> dataItems.add( new TestPagerProvider.DataItem( "Page D" ));<br> return dataItems;<br> } |
ability_main.xml
1 | <?xml version= "1.0" encoding= "utf-8" ?><br><DirectionalLayout<br> xmlns:ohos= "http://schemas.huawei.com/res/ohos" <br> ohos:height= "match_parent" <br> ohos:width= "match_parent" <br> ohos:alignment= "center" <br> ohos:orientation= "vertical" ><br> <PageSlider<br> ohos:id= "$+id:page_slider" <br> ohos:height= "300vp" <br> ohos:width= "300vp" <br> ohos:layout_alignment= "horizontal_center" /><br></DirectionalLayout> |
以上就是 短视频程序源码,PageSlider实现滑动页面的相关代码,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现