ViewPager和Fragment
来源:互联网 发布:java线程是什么意思 编辑:程序博客网 时间:2024/06/05 20:04
ViewPager是一个能实现页面滑动切换效果的控件。要切换的页面时通过给Viewpager配置的Adapter里加载的。
ViewPager常用的两种adapter是PagerAdapter和FragmentPagerAdapter.PagerAdapter适用于功能相似的页面。
当使用PagerAdapter时,需要复写public void destroyItem(ViewGroup container, int position, Object object),public Object instantiateItem(ViewGroup container, int position),public void setPrimaryItem(ViewGroup container, int position, Object object),public int getCount(),public boolean isViewFromObject(View view, Object object)这几个方法。 通过adapter的public int getCount() 方法来确定它要加载View的数量。通过adapter的public Object instantiateItem(View container, int position)方法来具体加载View。第一个参数container是保存所有view的容器。一般重写这方法的时候需要在每次得到一个View时把这个通过 container.addView(view)的方法把view添加到container中。一开始position是为默认为0,每向右滑动一页就position+1然后自动调用PagerAdapter里的instantiateItem方法,position最大只能是getCount()取得的值。instantiateItem方法是返回一个view,这个view就是要被加载的页面。因为所有要切换的view都通过这个方法调用,所以没有办法根据不同的View设置不同复杂的功能。解决办法就是使用FragmentPagerAdapter。
使用FragmentPagerAdapter时,一般使用的activity是继承自FragmentActivity。继承FragmentPagerAdapter需要重写public Fragment getItem(int position)和public int getCount()方法。getItem()就是返回需要显示的fragment。一般要返回的fragment是要一开始就初始化好的。所有的fragment都在一开始初始化完并保存到一个List<Fragment> fragmentList中,然后就在Adapter 的getItem方法中通过return fragmentList.get(positon)来返回要在加载的fragment。每个Fragment作用就跟Activity差不多,根据不同的需要来定义自己的页面和功能。每次调用Fragment都调用它的public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)方法来加载xml视图文件。
如果想要在ViewPager每次滑动一个页面时都执行一些动作,可以为这个ViewPager通过setOnPageChangeListener注册一个OnPageChangeListener监听器来监听滑动时要执行的任务。
- Fragment嵌套Fragment和Viewpager
- Fragment嵌套Fragment和Viewpager
- 关于ViewPager和Fragment
- ViewPager和Fragment
- Fragment 和 ViewPager 基础
- ViewPager和Fragment简介
- ViewPager和Fragment
- fragment和viewpager
- Viewpager和Fragment
- android viewpager和fragment
- ViewPager和Fragment
- ViewPager和ViewPager+Fragment简单使用
- TabActivity 、fragemnt+fragment 和 Fragment+Viewpager 优缺点
- ViewPager和fragment的使用
- TabHost fragment 和 Viewpager 总结
- ViewPager和Fragment的结合
- 横向滑动ViewPager和Fragment
- ViewPager 和Fragment的使用
- cocos2d-x 3.1.1 学习笔记[11] http请求 + json解析
- linux下搭建SVN服务器完全手册
- 有关于dmx控制器的相关使用问题以及当中的特点
- android apk 代码混淆
- eclipse 建立的dynamic web project中无法高亮显示jsp中相同变量,不是很方便啊!
- ViewPager和Fragment
- Windows下的Memcache安装:
- Unicode编码
- 64位win8.1 IIS配置以及问题解决方法
- poj 3687 Labeling Balls(拓扑算法)
- springMVC配置文件的编写
- 三表查询 MYSQL句子
- 6.3 接口和实现
- Surciata源码分析之IpsNFQ模式(1)