下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Android开发之ViewPager实现滑动切换页面MainActivity.java
跟ListView类似,我们把三个页面从xml中渲染出来,成为java代码中的一个View类型变量,然后将其装入一个List中,最终通过adapter装填进viewpager里。
packagecom.example.myviewpager;
importandroidx.appcompat.app.AppCompatActivity;
importandroidx.viewpager.widget.ViewPager;
importandroid.os.Bundle;
importandroid.view.LayoutInflater;
importandroid.view.View;
importjava.util.ArrayList;
importjava.util.List;
publicclassMainActivityextendsAppCompatActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LayoutInflaterinflater=getLayoutInflater().from(this);
Viewview1=inflater.inflate(R.layout.layout1,null);
Viewview2=inflater.inflate(R.layout.layout2,null);
Viewview3=inflater.inflate(R.layout.layout3,null);
ListViewviewList=newArrayList();
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);
ViewPagerviewpager=findViewById(R.id.viewpager);
MyAdaptermyadapter=newMyAdapter(viewList);
viewpager.setAdapter(myadapter);
}
}
adapter
ViewPager的adapter类继承自PagerAdapter。
首先,需要有一个构造器,使得主函数中的数据能够传进adapter:
privateListViewlistview;
publicMyAdapter(ListViewlistview){
this.listview=listview;
}
在MyAdapter中,需要实现四个方法:
getCount()
获得viewpagert中有多少个view,这个很简单,返回列表大小就行了。
@Override
publicintgetCount(){
returnlistview.size();
}
instantiateItem()
1.将给定位置的view添加到ViewGroup(容器)中,创建并显示出来。
2.返回一个代表新增页面的Object(key),通常都是直接返回view本身就可以了,当然也可以自定义自己的key,但是key和每个view要一一对应的关系。
在写instantiateItem()时,可以用快捷键Alt+Insert选择OverrideMethods,在弹出的界面中输入字母就可以查找对应的函数,选中即可生成一个框架(博主这里是因为已经实现了该方法,所以被划掉了):
@NonNull
@Override
publicObjectinstantiateItem(@NonNullViewGroupcontainer,intposition){
container.addView(listview.get(position),0);
returnlistview.get(position);
}
isViewFromObject()
判断instantiateltem(ViewGroup,int)函数所返回来的Key与一个页面视图是否是代表的同一个视图(即它俩是否是对应的,对应的表示同一个view),通常我们直接写returnview==object。
@Override
publicbooleanisViewFromObject(@NonNullViewview,@NonNullObjectobject){
returnview==object;
}
destroyltem()
移除一个给定位置的页面。适配器有责任从容器中册删除这个视图。这是为了确保在finishUpdate(viewGroup)返回时视图能够被移除。
@Override
publicvoiddestroyItem(@NonNullViewGroupcontainer,intposition,@NonNullObjectobject){
container.removeV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年人教版七年级历史下册近现代史单元测试卷(含答案)
- XX高中高三年级家委会在2026年高考百日誓师大会上的家长寄语
- XX中学2026年春季学期中考英语听力口语考试考前部署会
- 2026年中国宝武钢铁集团工作人员招聘考试笔试试题(含答案)
- 2026年职业院校教师岗位职责及试题及答案
- 2026年供应商质量与交付标准确认函(5篇)
- 企业全年业务目标完成责任书(4篇)
- 商洽延长合作期限及条款修订商洽函(3篇范文)
- 2026年聊城市茌平区选调生试题及答案
- 2026年资源调配与优化优化的商谈信7篇
- 年产200吨高纯金属铯铷项目报告书
- 煤矿各级各岗位人员职业病防治责任制
- (高清版)DB11∕T2370-2024生态修复树种选择技术规范
- 2025新人教版七年级下册英语 Unit 2知识点梳理及语法讲义(答案版)
- 见证取样送检计划方案
- (新版)多旋翼无人机超视距驾驶员执照参考试题(附答案)
- 2025年包钢(集团)公司招聘笔试参考题库含答案解析
- 【公开课】多姿与多彩(生活色彩)课件高中美术人教版+(2019)+选择性必修1+绘画
- 房产销售人员劳动合同范本专业版
- 《植物生产与环境》考试复习题及答案
- 入股协议合同完整版
评论
0/150
提交评论