Tab系列 03 FragmentPagerAdapter + Fragment + ViewPager+TabPageIndicator
2016-07-08 11:14
691 查看
Tab系列 03
FragmentPagerAdapter + Fragment + ViewPager+TabPageIndicator
效果图:
TabPageIndicator 作为tab的指示器,
ViewPager 内容使用FragmentLayou添加各个板块的内容,
Viewpager的适配器继承FragmentPagerAdapter
适配器加载数据,初始化Viewpager
TabPageIndicator 使用 tabPageIndicator.setViewPager(viewPager, 0);
设置当前指示的tab 控制Viewpager滚到指定的页面
(1)适配器
注意除了实现getCount 和getItem(),还有一个设置pageTitle的方法,
这是必须的。
(2)Fragment
(3)MainActivity.java
tabPageIndicator.setViewPager(viewPager, 0);设置指示器,控制
ViewPager滚动到那个界面。
ViewPager的初始化设置适配器。
主要是设配器继承FragmentPagerAdapter
FragmentPagerAdapter + Fragment + ViewPager+TabPageIndicator
效果图:
TabPageIndicator 作为tab的指示器,
ViewPager 内容使用FragmentLayou添加各个板块的内容,
Viewpager的适配器继承FragmentPagerAdapter
适配器加载数据,初始化Viewpager
TabPageIndicator 使用 tabPageIndicator.setViewPager(viewPager, 0);
设置当前指示的tab 控制Viewpager滚到指定的页面
(1)适配器
注意除了实现getCount 和getItem(),还有一个设置pageTitle的方法,
这是必须的。
@Override public CharSequence getPageTitle(int position) { return TITLES[position % TITLES.length]; }
package com.example.csdndemo01; import java.util.List; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; public class MyAdapter extends FragmentPagerAdapter { public static final String[] TITLES = new String[] { "业界", "移动", "研发", "程序员杂志", "云计算" }; private List<Fragment> list; public MyAdapter(FragmentManager fm, List<Fragment> list) { super(fm); this.list = list; } @Override public CharSequence getPageTitle(int position) { return TITLES[position % TITLES.length]; } @Override public Fragment getItem(int arg0) { return list.get(arg0); } @Override public int getCount() { return list.size(); } }
(2)Fragment
public class Fragment0 extends Fragment { public View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.tab01_content_layout, container, false); TextView tv = (TextView) view.findViewById(R.id.textView1); tv.setText(MyAdapter.TITLES[0]); return view; }; }
(3)MainActivity.java
tabPageIndicator.setViewPager(viewPager, 0);设置指示器,控制
ViewPager滚动到那个界面。
ViewPager的初始化设置适配器。
主要是设配器继承FragmentPagerAdapter
package com.example.csdndemo01; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.view.ViewPager; import com.viewpagerindicator.TabPageIndicator; public class MainActivity extends FragmentActivity { TabPageIndicator tabPageIndicator; ViewPager viewPager; Fragment fr1; Fragment fr2; Fragment fr3; Fragment fr4; List<Fragment> list ; MyAdapter adapter; FragmentManager fm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { initView(); tabPageIndicator.setViewPager(viewPager, 0); } catch (Exception e) { e.printStackTrace(); } } /** * 初始化视图 */ private void initView() { list = new ArrayList<Fragment>(); fr1 = new Fragment0(); fr2 = new Fragment1(); fr3 = new Fragment2(); fr4 = new Fragment3(); list.add(fr1); list.add(fr2); list.add(fr3); list.add(fr4); tabPageIndicator = (TabPageIndicator) findViewById(R.id.tabIndicator); viewPager = (ViewPager) findViewById(R.id.viewPager); adapter = new MyAdapter(getSupportFragmentManager(), list); viewPager.setAdapter(adapter); } }
相关文章推荐
- 令PHP初学者的困惑的10个知识点
- 令PHP初学者的困惑的10个知识点
- laravel资源路由的中控制器中相关方法的解析
- laravel 坑
- 4000 PHP斗地主分牌,数组打乱排序,切割数组,合并数组,按值排序数组。
- yii2.0自定义组件
- CodeIgniter框架源码笔记(3)——每次请求的总调度师傅:引导文件CodeIgniter.php
- PHP中SESSION与COOKIE的区别与联系
- RTP协议全解析(H264码流和PS流)
- Parse error: syntax error
- andriod 获取剪贴板管理服务
- php 的aes加密
- laravel资源路由,控制器中的接收方式,详解
- mysql的mysqli异步与php的携程
- php 将网页执行的输出写入到本地文件中
- 使用phpexcel导出 数据
- 辨析php://input与$_POST
- PHP $_GET/$_POST提交
- php 二维数组根据某个字段排序
- php多进程pcntl学习(采集新浪微博)