为ViewPager添加适配器
来源:互联网 发布:db2执行sql脚本 编辑:程序博客网 时间:2024/05/02 01:15
ViewPager有两个常用的适配器,这两个适配器都继承于PagerAdapter,并将Fragment作为数据源:
- FragmentPagerAdapter: 这种适配器从始至终保存所有页面的Fragment的实例。当页面形式固定且数量较小的时候,可以选择这种适配器。
- FragmentStatePagerAdater: 这种适配器只会保存当前、前一个和后一个页面的Fragment。当页面数量较多或者需要动态改变数量时,可以选择。
二者的使用方法是完全相同的,下面以FragmentPagerAdapter说明。
创建Fragment,并为Fragment加载布局
在xml文件中定义Fragment使用的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textSize="30sp" /></RelativeLayout>
创建Fragment,并加载此布局:
public class MyFragment extends Fragment {private int num;public MyFragment(int num){this.num = num;}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View v = inflater.inflate(R.layout.view_1, container, false);TextView textView = (TextView) v.findViewById(R.id.text_view);textView.setText("This is the #" + (num + 1) + " view");return v;}}
创建适配器
创建一个类继承于FragmentPagerAdapter,重写其中的getItem() 和getCount() 方法。getItem() 方法返回一个Fragment对象作为页面的内容,getCount() 返回页面的个数。
如果设置了选项卡导航栏,还可以重写getPageTitle() 来返回选项卡的标题:
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {public MyFragmentPagerAdapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int position) {return new MyFragment(position);}@Overridepublic int getCount() {return 4;}@Overridepublic CharSequence getPageTitle(int position) {String title = "Tab #" + (position + 1);return title;}}
PS: 这里每个页面使用了相同的布局,仅仅是改变了布局中显示的内容。如果每个页面要使用不同的布局,也可以为每一个布局文件创建一个Fragment,并将所有的Fragment保存在一个集合中,然后在getItem方法中返回不同的Fragment对象。
绑定适配器
adapter1 = new MyFragmentPagerAdapter(getSupportFragmentManager());viewPager.setAdapter(adapter1);
MyFragmentPagerAdapter接收一个FragmentManager对象作为构造参数。为了使程序能够兼容,需要让MainActivity继承FragmentActivity,并且使用getSupportFragmentManager() 方法。
0 0
- 为ViewPager添加适配器
- 无限循环 动态删除 添加 viewpager适配器
- 为listView添加自定义适配器
- 为ViewPager添加一个indicator
- viewPager适配器
- 为ViewPager添加选项卡导航栏
- 50.为ViewPager添加翻页动画
- 为ViewPager添加视图切换动画
- ViewPager及其适配器FragmentPagerAdapter
- android ViewPager适配器
- ViewPager的适配器们
- ViewPager 适配器之PagerAdapter
- ViewPager的适配器问题
- ViewPager的适配器PagerAdapter
- 适配器Fragment,Viewpager
- ViewPager轮播适配器
- 为ListView添加适配器时,出现空指针异常
- 为你的RecyclerView.Adapter添加通用DiffUtil适配器
- personal mark
- linux习惯每天一个命令之telnet
- Android服务器——TomCat服务器的搭建
- 卷积神经网络(cnn) 手写数字识别
- Android学习小记
- 为ViewPager添加适配器
- C#与C/C++部分基础语法差异
- PHP-文件上传到独立服务器
- iOS8之后的UIAlertViewController
- MySql免安装版的配置
- select多路复用
- gdb调用笔记
- [leetcode]Spiral Matrix II
- mfc中将接收到的十六进制数保存到TXT文件,保存形式为十进制