分页显示有两种方式 一种是使用ViewPager 另一种是使用FragmentTransaction

上代码

1 FragmentTransaction实现方式

  1. public class MainActivity extends FragmentActivity implements View.OnClickListener {
  2.  
  3. private AllPhotosFragment allPhotosFragment;
  4. private MyAlbumFragment myAlbumFragment;
  5. private ShareTimeFragment shareTimeFragment;
  6. private ShotTimeFragment shotTimeFragment;
  7. private ThemeAlbumFragment themeAlbumFragment;
  8. private PersonalFragment personalFragment;
  9.  
  10. private ImageView test1;
  11. private ImageView test2;
  12. private ImageView test3;
  13.  
  14. private FragmentManager fragmentManager;
  15.  
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
  20. setContentView(R.layout.activity_main);
  21.  
  22. test1 = (ImageView) findViewById(R.id.test1);
  23. test2 = (ImageView) findViewById(R.id.test2);
  24. test3 = (ImageView) findViewById(R.id.test3);
  25. test1.setOnClickListener(this);
  26. test2.setOnClickListener(this);
  27. test3.setOnClickListener(this);
  28.  
  29. fragmentManager = getSupportFragmentManager();
  30.  
  31. }
  32.  
  33. @Override
  34. public void onClick(View v) {
  35.  
  36. FragmentTransaction transaction = fragmentManager.beginTransaction();
  37. hideFragments(transaction);
  38.  
  39. switch (v.getId()) {
  40. case R.id.test1:
  41. if (allPhotosFragment == null) {
  42. allPhotosFragment = new AllPhotosFragment();
  43. transaction.add(R.id.id_content, allPhotosFragment);
  44. }else {
  45. transaction.show(allPhotosFragment);
  46. }
  47. break;
  48. case R.id.test2:
  49. if (shareTimeFragment == null) {
  50. shareTimeFragment = new ShareTimeFragment();
  51. transaction.add(R.id.id_content, shareTimeFragment);
  52. }else {
  53. transaction.show(shareTimeFragment);
  54. }
  55. break;
  56. case R.id.test3:
  57. if (personalFragment == null) {
  58. personalFragment = new PersonalFragment();
  59. transaction.add(R.id.id_content, personalFragment);
  60. }else {
  61. transaction.show(personalFragment);
  62. }
  63. break;
  64. }
  65.  
  66. transaction.commit();
  67.  
  68. }
  69.  
  70. private void hideFragments(FragmentTransaction transaction) {
  71. if (allPhotosFragment != null) {
  72. transaction.hide(allPhotosFragment);
  73. }
  74. if (shareTimeFragment != null) {
  75. transaction.hide(shareTimeFragment);
  76. }
  77. if (personalFragment != null) {
  78. transaction.hide(personalFragment);
  79. }
  80. }
  81.  
  82. }
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context="com.example.testfragment.MainActivity" >
  6.  
  7. <FrameLayout
  8. android:id="@+id/id_content"
  9. android:layout_width="match_parent"
  10. android:layout_height="match_parent"
  11. android:background="#FFFFFF" />
  12.  
  13. <RelativeLayout
  14. android:layout_width="match_parent"
  15. android:layout_height="80dp"
  16. android:layout_alignParentTop="true"
  17. android:background="#123456" >
  18. </RelativeLayout>
  19.  
  20. <LinearLayout
  21. android:layout_width="match_parent"
  22. android:layout_height="80dp"
  23. android:layout_alignParentBottom="true"
  24. android:background="#123456"
  25. android:gravity="center_vertical"
  26. android:orientation="horizontal" >
  27.  
  28. <ImageView
  29. android:id="@+id/test1"
  30. android:layout_width="wrap_content"
  31. android:layout_height="wrap_content"
  32. android:layout_weight="1"
  33. android:src="@drawable/test1" />
  34.  
  35. <ImageView
  36. android:id="@+id/test2"
  37. android:layout_width="wrap_content"
  38. android:layout_height="wrap_content"
  39. android:layout_weight="1"
  40. android:src="@drawable/test2" />
  41.  
  42. <ImageView
  43. android:id="@+id/test3"
  44. android:layout_width="wrap_content"
  45. android:layout_height="wrap_content"
  46. android:layout_weight="1"
  47. android:src="@drawable/test3" />
  48. </LinearLayout>
  49.  
  50. </RelativeLayout>
  1. public class PersonalFragment extends Fragment{
  2.  
  3. @Override
  4. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  5.  
  6. View view = inflater.inflate(R.layout.fragment_test, container, false);
  7. TextView textView = (TextView) view.findViewById(R.id.tv);
  8. textView.setText("PersonalFragment");
  9. return view;
  10. }
  11.  
  12. }

Code见https://github.com/huanyi0723/TestFragmentTransaction

2 FragmentPagerAdapter实现方式

  1. public class MainActivity extends FragmentActivity {
  2.  
  3. private ArrayList<Fragment> fragments;
  4. private ViewPager viewPager;
  5. private MyViewPagerAdapter myViewPagerAdapter;
  6.  
  7. private AllPhotosFragment allPhotosFragment;
  8. private MyAlbumFragment myAlbumFragment;
  9. private ShareTimeFragment shareTimeFragment;
  10. private ShotTimeFragment shotTimeFragment;
  11. private ThemeAlbumFragment themeAlbumFragment;
  12. private PersonalFragment personalFragment;
  13.  
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
  18. setContentView(R.layout.activity_main);
  19.  
  20. viewPager = (ViewPager) findViewById(R.id.viewpager);
  21.  
  22. fragments = new ArrayList<Fragment>();
  23. allPhotosFragment = new AllPhotosFragment();
  24. myAlbumFragment = new MyAlbumFragment();
  25. shareTimeFragment = new ShareTimeFragment();
  26. shotTimeFragment = new ShotTimeFragment();
  27. themeAlbumFragment = new ThemeAlbumFragment();
  28. personalFragment = new PersonalFragment();
  29. fragments.add(allPhotosFragment);
  30. fragments.add(myAlbumFragment);
  31. fragments.add(shareTimeFragment);
  32. fragments.add(shotTimeFragment);
  33. fragments.add(themeAlbumFragment);
  34. fragments.add(personalFragment);
  35. myViewPagerAdapter = new MyViewPagerAdapter(getSupportFragmentManager(), fragments);
  36.  
  37. viewPager.setAdapter(myViewPagerAdapter);
  38. viewPager.setCurrentItem(0);
  39. }
  40.  
  41. }
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context="com.example.testfragment.MainActivity" >
  6.  
  7. <android.support.v4.view.ViewPager
  8. android:id="@+id/viewpager"
  9. android:layout_width="match_parent"
  10. android:layout_height="match_parent"
  11. android:background="#FFFFFF" />
  12.  
  13. <RelativeLayout
  14. android:layout_width="match_parent"
  15. android:layout_height="80dp"
  16. android:layout_alignParentTop="true"
  17. android:background="#123456" >
  18. </RelativeLayout>
  19.  
  20. <RelativeLayout
  21. android:layout_width="match_parent"
  22. android:layout_height="80dp"
  23. android:layout_alignParentBottom="true"
  24. android:background="#123456" >
  25. </RelativeLayout>
  26.  
  27. </RelativeLayout>
  1. public class MyViewPagerAdapter extends FragmentPagerAdapter{
  2.  
  3. private ArrayList<Fragment> fragments;
  4.  
  5. public MyViewPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragments) {
  6. super(fm);
  7. this.fragments = fragments;
  8. }
  9.  
  10. @Override
  11. public Fragment getItem(int arg0) {
  12. return fragments.get(arg0);
  13. }
  14.  
  15. @Override
  16. public int getCount() {
  17. return fragments.size();
  18. }
  19.  
  20. }
  1. public class AllPhotosFragment extends Fragment {
  2.  
  3. @Override
  4. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  5. View view = inflater.inflate(R.layout.fragment_test, container, false);
  6. TextView textView = (TextView) view.findViewById(R.id.tv);
  7. textView.setText("AllPhotosFragment");
  8. return view;
  9. }
  10.  
  11. }

Code见https://github.com/huanyi0723/TestFragmentPagerAdapter/

Android Fragment分页显示的实现的更多相关文章

  1. Android之分页加载数据

    基本的原理和我的上一篇随笔“Android之下拉刷新ListView”差不多,代码里面有注释,这里就不废话了,直接上代码. 自定义的分页显示ListView——PagedListView.java代码 ...

  2. 【Android自学日记】【转】Android Fragment 真正的完全解析(下)

    上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上). 本篇将介绍上篇博客提到的:如何管理Frag ...

  3. Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理

    Toolbar作为ActionBar使用介绍 本文介绍了在Android中将Toolbar作为ActionBar使用的方法. 并且介绍了在Fragment和嵌套Fragment中使用Toolbar作为 ...

  4. Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误

    嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 ge ...

  5. Android Fragment使用(一) 基础篇 温故知新

    Fragment使用的基本知识点总结, 包括Fragment的添加, 参数传递和通信, 生命周期和各种操作. Fragment使用基础 Fragment添加 方法一: 布局里的标签 标识符: tag, ...

  6. Android Fragment应用实战

    现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上, ...

  7. Android Fragment 真正的完全解析(下)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和 ...

  8. Android Fragment 深度解析

    1.Fragment的产生与介绍 Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视.针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套app,然后拷贝一份,修改布局以适应 ...

  9. Android Fragment

    1.Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期. 2.Fragment 生命周期: 首页 最新文章 在线课程 业界 开发 ...

随机推荐

  1. lhgdialog在打开的窗口里点击按钮关闭当前窗口

    lhgdialog在打开的窗口里点击按钮关闭当前窗口 var api = frameElement.api, W = api.opener; api.close();

  2. MD5签名方法

    /** * md5签名 * @param plainText 要签名的字符串 * @param enc 要编译的格式 gbk:utf-8 * @return */ public static Stri ...

  3. CentOS 安装ftp

    Linux安装ftp组件 1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y insta ...

  4. java提高篇---HashSet

    对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素.所以如果对HashMap比较熟悉,那么HashSet是so  easy!! 一.定义 public class ...

  5. Jenkins构建Git manager服务器的源码

    1,下载scm manager 源码库管理,下载后解压即可: 2,运行bin目录下的scm-server.bat文件,启动服务: 3,建议将scm-server放在git客户端的安装目录下,方便管理 ...

  6. hahaha

    [问题描述] 小Q对计算几何有着浓厚的兴趣.他经常对着平面直角坐标系发呆,思考一些有趣的问题.今天,他想到了一个十分有意思的题目: 首先,小Q会在x轴正半轴和y轴正半轴分别挑选n个点.随后,他将轴的点 ...

  7. Cheatsheet: 2013 08.14 ~ 08.19

    .NET Lucene.Net ultra fast search for MVC or WebForms site => made easy! C# State Machines HttpCl ...

  8. ubuntu vi/vim编辑器必知必会

    转载出处:http://blog.csdn.net/xiajun07061225/article/details/7039413 一.我们为什么要学习vim编辑器? Linux的命令行界面下面有非常多 ...

  9. 服务器端验证--验证框架验证required.

    struts2表单验证里field-validator type值一共可以取哪些?都什么含义? int 整数:double 实数:date 日期:expression 两数的关系比较: email E ...

  10. CUBRID学习笔记 7 ms常见错误

    基本不是权限问题,就是dll问题.  重新下载或应用dll注意版本. 权限的问题,先本机测试. 看看在web管理有无问题.  剩下的基本就简单了 欢迎转载 ,转载时请保留作者信息.本文版权归本人所有, ...