1. public class FragAdapter extends FragmentPagerAdapter {
  2.  
  3. private List<Fragment> fragments ;
  4.  
  5. public FragAdapter(FragmentManager fm){
  6. super(fm);
  7. }
  8.  
  9. public FragAdapter(FragmentManager fm,List<Fragment> fragments) {
  10. super(fm);
  11. this.fragments = fragments;
  12. }
  13.  
  14. @Override
  15. public Fragment getItem(int position) {
  16. return fragments.get(position);
  17. }
  18.  
  19. @Override
  20. public int getCount() {
  21. return fragments.size();
  22. }
  23.  
  24. /**
  25. * add the fragment to the special position
  26. * @param location the position be added to.
  27. * @param fragment
  28. */
  29. public void addFragment(int location,Fragment fragment){
  30. this.fragments.add(location, fragment);
  31. this.notifyDataSetChanged();
  32. }
  33. /**
  34. * add the fragment to the default position.the end of the list.
  35. * @param fragment
  36. */
  37. public void addFragment(Fragment fragment){
  38. this.fragments.add(fragment);
  39. this.notifyDataSetChanged();
  40. }
  41. }

MyFragment.java:

  1. public class MyFragment extends Fragment {
  2.  
  3. private static final String TEXT_CHAT = "CHAT";
  4.  
  5. /**
  6. * Factory method to generate a new instance of the fragment given a string .
  7. *
  8. * @param char 主页面要传过来的信息
  9. * @return A new instance of MyFragment with chat extras
  10. */
  11. public static MyFragment newInstance(String chat) {
  12. final MyFragment f = new MyFragment();
  13.  
  14. final Bundle args = new Bundle();
  15. args.putString(TEXT_CHAT, chat);
  16. f.setArguments(args);
  17. return f;
  18. }
  19.  
  20. @Override
  21. public void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. }
  24.  
  25. @Override
  26. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  27. View view = inflater.inflate(R.layout.myfragment, container, false);
  28. TextView tv = (TextView) view.findViewById(R.id.tv_fragment_text);
  29. String str = getArguments() != null ? getArguments().getString(TEXT_CHAT) : null;
  30. if(str != null){
  31. tv.setText(str);
  32. }else{
  33. tv.setText("获取字段出错了,求指导");
  34. }
  35. return view;
  36. }
  37.  
  38. @Override
  39. public void onActivityCreated(Bundle savedInstanceState) {
  40. super.onActivityCreated(savedInstanceState);
  41. }
  42.  
  43. }

MainActivity.java:

  1. public class MainActivity extends FragmentActivity implements OnClickListener {
  2.  
  3. private ViewPager vp;
  4. private TextView tv_no1;
  5. private TextView tv_no2;
  6.  
  7. private FragAdapter adapter;
  8.  
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.activity_main);
  13. vp = (ViewPager) findViewById(R.id.vp_main);
  14. tv_no1 = (TextView) findViewById(R.id.tv_no1);
  15. tv_no2 = (TextView) findViewById(R.id.tv_no2);
  16.  
  17. tv_no1.setOnClickListener(this);
  18. tv_no2.setOnClickListener(this);
  19.  
  20. initViewPage();
  21. }
  22.  
  23. /**
  24. * 初始化 view page的相关数据
  25. */
  26. private void initViewPage() {
  27.  
  28. List<Fragment> fragments = new ArrayList<Fragment>();
  29. fragments.add(MyFragment.newInstance("我是第一个界面,看到我,看到我"));
  30. fragments.add(MyFragment.newInstance("我是第二个界面,看到我,看到我"));
  31.  
  32. adapter = new FragAdapter(getSupportFragmentManager(), fragments);
  33. vp.setAdapter(adapter);
  34. vp.setCurrentItem();
  35. changeTextColor();
  36. vp.setOnPageChangeListener(new MyVPageChangeListener());
  37.  
  38. }
  39.  
  40. @Override
  41. public boolean onCreateOptionsMenu(Menu menu) {
  42. // Inflate the menu; this adds items to the action bar if it is present.
  43. getMenuInflater().inflate(R.menu.activity_main, menu);
  44. return true;
  45. }
  46.  
  47. private class MyVPageChangeListener implements OnPageChangeListener {
  48.  
  49. @Override
  50. public void onPageScrollStateChanged(int arg0) {
  51. // TODO Auto-generated method stub
  52.  
  53. }
  54.  
  55. @Override
  56. public void onPageScrolled(int arg0, float arg1, int arg2) {
  57. // TODO Auto-generated method stub
  58.  
  59. }
  60.  
  61. @Override
  62. public void onPageSelected(int location) {
  63. changeTextColor(location);
  64. }
  65.  
  66. }
  67.  
  68. /**
  69. * 设置下面文本的颜色。
  70. * @param location
  71. */
  72. private void changeTextColor(int location) {
  73. switch (location) {
  74. case :
  75. tv_no1.setTextColor(Color.RED);
  76. tv_no2.setTextColor(Color.CYAN);
  77. break;
  78. case :
  79. tv_no2.setTextColor(Color.RED);
  80. tv_no1.setTextColor(Color.CYAN);
  81. break;
  82. default:
  83. break;
  84. }
  85. }
  86.  
  87. @Override
  88. public void onClick(View v) {
  89. switch (v.getId()) {
  90. case R.id.tv_no1:
  91. vp.setCurrentItem();
  92. break;
  93. case R.id.tv_no2:
  94. vp.setCurrentItem();
  95. break;
  96. default:
  97. break;
  98. }
  99. }
  100.  
  101. }

FragAdapter.java:

Android:Fragment+ViewPager实现Tab滑动的更多相关文章

  1. Android之仿微信Tab滑动

    这个项目实现了以下的功能:有三个标签聊天.发现和通讯录,左右滑动下面的ViewPager可以切换不同的标签,且标签下面的蓝色条可以随着手指的滑动来实时滑动.另外,如果第二次滑动到“聊天”界面,可以在“ ...

  2. 114、Android禁止ViewPager的左右滑动

    有时候在开发中会遇到一些“诡异”的要求,比如在ViewPager中嵌入ListView,或者再嵌入一个ViewPager,那么在滑动的时候就会造成被嵌入的XXView不能滑动了,那么现在就把最外层的V ...

  3. Android listview viewpager解决冲突 滑动

    Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决   在listview 上使用 addHeaderView 在第 ...

  4. Android禁止ViewPager的左右滑动

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/40744287 有时候在开发中会遇到一些"诡异"的要求,比方在V ...

  5. 011 Android TabLayout+ViewPager实现顶部滑动效果(多个页面)

    1.TabLayout介绍 TabLayout提供了一个水平的布局用来展示Tabs,很多应用都有这样的设计,典型的有网易新闻,简书,知乎等.TabLayout就可以很好的完成这一职责,首先TabLay ...

  6. [Android]使用ViewPager实现图片滑动展示

    在淘宝等电商的APP首页经常能看到大幅的广告位,通常有多幅经常更新的图片用于展示促销信息,如下图所示: 通常会自动滚动,也可以根据手势滑动.我没有研究过人家的APP是通过什么实现的,可能有第三方已经封 ...

  7. Android使用ViewFlipper实现左右滑动效果面

    在我的博客中,上次是使用ViewPager实现左右滑动的效果的,请看文章:Android使用ViewPager实现左右滑动效果. 这次我来使用ViewFlipper实现这种效果,好了,先看看效果吧: ...

  8. ViewPager+Fragment再探:和TAB滑动条一起三者结合

    Fragment前篇: <Android Fragment初探:静态Fragment组成Activity> ViewPager前篇: <Android ViewPager初探:让页面 ...

  9. Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换

    一.问题描写叙述 本系列将结合案例应用,陆续向大家介绍一些Android典型界面的设计,首先说说tab导航,导航分为一层和两层(底部区块+区域内头部导航).主要实现方案有RadioGroup+View ...

随机推荐

  1. TCP/IP三次握手

    题目: TCP建立连接的过程采用三次握手,已知第三次握手报文的发送序列号为1000,确认序列号为2000,请问第二次握手报文的发送序列号和确认序列号分别为 1999,999 1999,1000 999 ...

  2. navagationController 的子控制器如何取消右滑返回

    1.首先在navagationController的某个控制器中 遵守:UIGestureRecognizerDelegate 2.在viewDidload中设置: self.navigationCo ...

  3. Java实战之03Spring-05Spring中的事务控制(基于AOP)

    五.Spring中的事务控制(基于AOP) 1.Spring中事务有关的接口 1.1.明确: JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计业务层的事务处理解决方案 1. ...

  4. ZOJ 1122 Clock(模拟)

    Clock Time Limit: 2 Seconds      Memory Limit: 65536 KB You are given a standard 12-hour clock with ...

  5. HDOJ1005 数列

    Problem Description A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) ...

  6. ThinkPHP3.2 加载过程(三)

    上次回顾: IS_CGI ,IS_WIN,IS_CLI,MAGIC_QUOTES_GPC干嘛用 IS_WIN 看了一下后面的代码  基本上就是为了保证在不同环境下运行时,由于有些操作系统会对文件路径大 ...

  7. PHPExcel说明

    下面是总结的几个使用方法include 'PHPExcel.php';include 'PHPExcel/Writer/Excel2007.php';//或者include 'PHPExcel/Wri ...

  8. controller.pp 各组件的安装顺序

    controller 属性:         admin_address => $controller_node_address,         public_address => $c ...

  9. ubuntu 12.04 安装 nginx+php+mysql web服务器

    Nginx 是一个轻量级,以占用系统资源少,运行效率而成为web服务器的后起之秀,国内现在很多大型网站都以使用nginx,包括腾讯.新浪等大型信息网站,还有淘宝网站使用的是nginx二次开发的web服 ...

  10. 【JTA】JTA允许应用程序执行分布式事务处理

    JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据.JDBC驱动程序的JTA支持极大地增强了数据访问能力. htt ...