博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习之ViewPager
阅读量:4679 次
发布时间:2019-06-09

本文共 4944 字,大约阅读时间需要 16 分钟。

 1.定义

  ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view。其中,android.support.v4是谷歌公司为了解决当前版本碎片化的问题,从而提供的一个兼容的包。可以实现向下兼容的问题,让一些高版本的控件能够在低版本中进行使用;通过ViewPager可以实现左右翻页的效果。

2.实现思路

  1.新建一个主Activity以及一个主View、四个其它View;

  2.在那四个View的布局文件中添加TextView,设置名称为"视图1"、“视图2”....,并为每个视图设置了不同的背景色;

  3.主View中添加ViewPager以及PagerTabStrip,并设置相关属性;

  4.新建一个SnailPagerAdapter,他继承于PagerAdapter,并重写类中的方法;

  5.在主Activity中初始化ViewPager、PagerAdapter,并通过setAdapter方法加载PagerAdapter。

3.具体实现

(1)代码结构图如下:

       

(2)SnailPagerAdapter实现代码如下:

  

1 package pager.snailtech.com.viewpagerdemo; 2  3 import android.support.v4.view.PagerAdapter; 4 import android.view.View; 5 import android.view.ViewGroup; 6 import java.util.List; 7  8  9 public class SnailPagerAdapter extends PagerAdapter {10     private List
viewList;11 private List
stringList;12 public SnailPagerAdapter(List
viewList,List
stringList)13 {14 this.viewList=viewList;15 this.stringList=stringList;16 }17 18 /**19 * 获取页卡的数量20 * @return21 */22 @Override23 public int getCount() {24 return viewList.size();25 }26 27 /**28 * 判断当前的View是否来自于对象29 * @param view30 * @param object31 * @return32 */33 @Override34 public boolean isViewFromObject(View view, Object object) {35 return view==object;36 }37 38 /**39 * 实例化一个页卡40 */41 42 @Override43 public Object instantiateItem(ViewGroup container, int position) {44 container.addView(viewList.get(position));45 return viewList.get(position);46 }47 48 /**49 * 销毁一个页卡50 * @param container51 * @param position52 * @param object53 */54 @Override55 public void destroyItem(ViewGroup container, int position, Object object) {56 container.removeView(viewList.get(position));57 }58 59 /**60 * 设置Viewpager页卡的标题61 * @param position62 * @return63 */64 @Override65 public CharSequence getPageTitle(int position) {66 return stringList.get(position);67 }68 }

(3)主Activity的代码如下:

1 package pager.snailtech.com.viewpagerdemo; 2  3 import android.support.v4.view.PagerTabStrip; 4 import android.support.v4.view.ViewPager; 5 import android.support.v7.app.ActionBarActivity; 6 import android.os.Bundle; 7 import android.view.Menu; 8 import android.view.MenuItem; 9 import android.view.View;10 11 import java.util.ArrayList;12 import java.util.List;13 14 15 public class MainActivity extends ActionBarActivity {16 17     private List
viewList;18 private List
stringList;19 private ViewPager viewPager;20 private PagerTabStrip pagerTabStrip;21 protected void onCreate(Bundle savedInstanceState) {22 super.onCreate(savedInstanceState);23 setContentView(R.layout.activity_main);24 viewList=new ArrayList
();25 stringList=new ArrayList
();26 //获取view27 View view1=View.inflate(this,R.layout.view1,null);28 View view2=View.inflate(this,R.layout.view2,null);29 View view3=View.inflate(this,R.layout.view3,null);30 View view4=View.inflate(this,R.layout.view4,null);31 //将view添加到viewList中32 viewList.add(view1);33 viewList.add(view2);34 viewList.add(view3);35 viewList.add(view4);36 //添加页卡名称37 stringList.add("第一页");38 stringList.add("第二页");39 stringList.add("第三页");40 stringList.add("第四页");41 //实例化pagerAdapter42 SnailPagerAdapter pagerAdapter=new SnailPagerAdapter(viewList,stringList);43 //获取ViewPager视图44 viewPager=(ViewPager)findViewById(R.id.pager);45 46 pagerTabStrip=(PagerTabStrip)findViewById(R.id.tab);47 //pagerTabStrip.setDrawFullUnderline(false);48 49 50 //加载pagerAdapter51 viewPager.setAdapter(pagerAdapter);52 53 54 55 }56 57 @Override58 public boolean onCreateOptionsMenu(Menu menu) {59 // Inflate the menu; this adds items to the action bar if it is present.60 getMenuInflater().inflate(R.menu.menu_main, menu);61 return true;62 }63 64 @Override65 public boolean onOptionsItemSelected(MenuItem item) {66 // Handle action bar item clicks here. The action bar will67 // automatically handle clicks on the Home/Up button, so long68 // as you specify a parent activity in AndroidManifest.xml.69 int id = item.getItemId();70 71 //noinspection SimplifiableIfStatement72 if (id == R.id.action_settings) {73 return true;74 }75 76 return super.onOptionsItemSelected(item);77 }78 }

(4)activity_main.xml的代码如下:

4.效果截图

 

转载于:https://www.cnblogs.com/TechSnail/p/4750098.html

你可能感兴趣的文章
hdu-1814(2-sat)
查看>>
谷歌浏览器,添加默认搜索引擎的搜索地址
查看>>
数据结构化与保存
查看>>
为什么需要Docker?
查看>>
国内5家云服务厂商 HTTPS 安全性测试横向对比
查看>>
how to control project
查看>>
转 python新手容易犯的6个错误
查看>>
第四节 -- 列表
查看>>
决策树
查看>>
团队作业
查看>>
如何避免在简单业务逻辑上面的细节上面出错
查看>>
大型网站高并发的架构演变图-摘自网络
查看>>
8丶运行及总结
查看>>
如何理解一台服务器可以绑定多个ip,一个ip可以绑定多个域名
查看>>
改进delphi中的RoundTo函数
查看>>
Microsoft Visual SourceSafe使用经验
查看>>
威尔逊定理及证明
查看>>
[LeetCode] Peeking Iterator
查看>>
Understanding Unix/Linux Programming-用户程序play_again4.c
查看>>
算法总结
查看>>