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

上代码

1 FragmentTransaction实现方式

public class MainActivity extends FragmentActivity implements View.OnClickListener {

  private AllPhotosFragment allPhotosFragment;
private MyAlbumFragment myAlbumFragment;
private ShareTimeFragment shareTimeFragment;
private ShotTimeFragment shotTimeFragment;
private ThemeAlbumFragment themeAlbumFragment;
private PersonalFragment personalFragment; private ImageView test1;
private ImageView test2;
private ImageView test3; private FragmentManager fragmentManager; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
setContentView(R.layout.activity_main); test1 = (ImageView) findViewById(R.id.test1);
test2 = (ImageView) findViewById(R.id.test2);
test3 = (ImageView) findViewById(R.id.test3);
test1.setOnClickListener(this);
test2.setOnClickListener(this);
test3.setOnClickListener(this); fragmentManager = getSupportFragmentManager(); } @Override
public void onClick(View v) { FragmentTransaction transaction = fragmentManager.beginTransaction();
hideFragments(transaction); switch (v.getId()) {
case R.id.test1:
if (allPhotosFragment == null) {
allPhotosFragment = new AllPhotosFragment();
transaction.add(R.id.id_content, allPhotosFragment);
}else {
transaction.show(allPhotosFragment);
}
break;
case R.id.test2:
if (shareTimeFragment == null) {
shareTimeFragment = new ShareTimeFragment();
transaction.add(R.id.id_content, shareTimeFragment);
}else {
transaction.show(shareTimeFragment);
}
break;
case R.id.test3:
if (personalFragment == null) {
personalFragment = new PersonalFragment();
transaction.add(R.id.id_content, personalFragment);
}else {
transaction.show(personalFragment);
}
break;
} transaction.commit(); } private void hideFragments(FragmentTransaction transaction) {
if (allPhotosFragment != null) {
transaction.hide(allPhotosFragment);
}
if (shareTimeFragment != null) {
transaction.hide(shareTimeFragment);
}
if (personalFragment != null) {
transaction.hide(personalFragment);
}
} }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.testfragment.MainActivity" > <FrameLayout
android:id="@+id/id_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF" /> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_alignParentTop="true"
android:background="#123456" >
</RelativeLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_alignParentBottom="true"
android:background="#123456"
android:gravity="center_vertical"
android:orientation="horizontal" > <ImageView
android:id="@+id/test1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/test1" /> <ImageView
android:id="@+id/test2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/test2" /> <ImageView
android:id="@+id/test3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/test3" />
</LinearLayout> </RelativeLayout>
public class PersonalFragment extends Fragment{

  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_test, container, false);
TextView textView = (TextView) view.findViewById(R.id.tv);
textView.setText("PersonalFragment");
return view;
} }

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

2 FragmentPagerAdapter实现方式

public class MainActivity extends FragmentActivity {

  private ArrayList<Fragment> fragments;
private ViewPager viewPager;
private MyViewPagerAdapter myViewPagerAdapter; private AllPhotosFragment allPhotosFragment;
private MyAlbumFragment myAlbumFragment;
private ShareTimeFragment shareTimeFragment;
private ShotTimeFragment shotTimeFragment;
private ThemeAlbumFragment themeAlbumFragment;
private PersonalFragment personalFragment; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewpager); fragments = new ArrayList<Fragment>();
allPhotosFragment = new AllPhotosFragment();
myAlbumFragment = new MyAlbumFragment();
shareTimeFragment = new ShareTimeFragment();
shotTimeFragment = new ShotTimeFragment();
themeAlbumFragment = new ThemeAlbumFragment();
personalFragment = new PersonalFragment();
fragments.add(allPhotosFragment);
fragments.add(myAlbumFragment);
fragments.add(shareTimeFragment);
fragments.add(shotTimeFragment);
fragments.add(themeAlbumFragment);
fragments.add(personalFragment);
myViewPagerAdapter = new MyViewPagerAdapter(getSupportFragmentManager(), fragments); viewPager.setAdapter(myViewPagerAdapter);
viewPager.setCurrentItem(0);
} }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.testfragment.MainActivity" > <android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF" /> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_alignParentTop="true"
android:background="#123456" >
</RelativeLayout> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_alignParentBottom="true"
android:background="#123456" >
</RelativeLayout> </RelativeLayout>
public class MyViewPagerAdapter extends FragmentPagerAdapter{

  private ArrayList<Fragment> fragments;

  public MyViewPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragments) {
super(fm);
this.fragments = fragments;
} @Override
public Fragment getItem(int arg0) {
return fragments.get(arg0);
} @Override
public int getCount() {
return fragments.size();
} }
public class AllPhotosFragment extends Fragment {

  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_test, container, false);
TextView textView = (TextView) view.findViewById(R.id.tv);
textView.setText("AllPhotosFragment");
return view;
} }

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. android 比较靠谱的图片压缩

    第一:我们先看下质量压缩方法: private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteAr ...

  2. [团队项目2.0]软件改进分析MathAPP

    软件改进分析 在此基础上,进行软件的改进. 首先,我们把这个软件理解成一个投入市场的.帮助小朋友进行算术运算练习的APP. 从质量保证的角度,有哪些需要改进的BUG? 从用户的角度(把自己当成小学生或 ...

  3. vim标准操作

    主要技巧: ->普通模式负责所有光标定位能力.插入模式随时使用<esc>键回到普通模式并且尽量保持普通模式为主要的工作状态. -> hjkl四键负责光标的低速移动,如果还在使用 ...

  4. Ombrophobic Bovines 分类: POJ 图论 最短路 查找 2015-08-10 20:32 2人阅读 评论(0) 收藏

    Ombrophobic Bovines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16539 Accepted: 3605 ...

  5. 周赛-Clique in the Divisibility Graph 分类: 比赛 2015-08-02 09:02 23人阅读 评论(3) 收藏

    Clique in the Divisibility Graph time limit per test1 second memory limit per test256 megabytes inpu ...

  6. Python学习笔记-Day2-Python基础之列表操作

    列表的常用操作包括但不限于以下操作: 列表的索引,切片,追加,删除,切片等 这里将对列表的内置操作方法进行总结归纳,重点是以示例的方式进行展示. 使用type获取创建对象的类 type(list) 使 ...

  7. 【Java】Map杂谈,hashcode()、equals()、HashMap、TreeMap、LinkedHashMap、ConcurrentHashMap

    参考的优秀文章: <Java编程思想>第四版 <Effective Java>第二版 Map接口是映射表的结构,维护键对象与值对象的对应关系,称键值对. > hashco ...

  8. WinForm窗体及其控件的自适应

    3步骤: 1.在需要自适应的Form中实例化全局变量   AutoSizeFormClass.cs源码在下方 AutoSizeFormClass asc = new AutoSizeFormClass ...

  9. linux下查看分区信息和剩余空间大小

    1. 查看Linux系统分区信息,使用命令“fdisk -l” 2.使用命令”df -l和df -h“具体查看分区使用状况.实际这两个命令具有一样的作用区别是显示的容量单位不一样,当然也可以直接使用明 ...

  10. 【leetcode❤python】121. Best Time to Buy and Sell Stock

    #-*- coding: UTF-8 -*- #Method1 :超时#class Solution(object):#    def maxProfit(self, prices):#      # ...