分页显示有两种方式 一种是使用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. python 入门教程

    转载自:http://www.crifan.com/files/doc/docbook/python_beginner_tutorial/release/html/python_beginner_tu ...

  2. [HTML]网页开发学习笔记

    为了要开发一套教学使用的教师管理系统,(客户需求使用网页做教师控制端口)我便学习了一下HTML网页开发. 很不错的学习开发的网站:http://www.w3school.com.cn/index.ht ...

  3. c#之线程随机

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. 过滤器(Filter)案例:检测用户是否登陆的过滤器

    *****检测用户是否登陆的过滤器:不需要用户跳转到每个页面都需要登陆,访问一群页面时,只在某个页面上登陆一次,就可以访问其他页面: 1.自定义抽象的 HttpFilter类, 实现自 Filter ...

  5. 20150604_Andriod 窗体PopupWindow动画

    参考地址: http://www.open-open.com/lib/view/open1378720752084.html http://www.jcodecraeer.com/a/anzhuoka ...

  6. office 2013 产品秘钥

    9RN4T-JPBQV-XQMC9-PM9FP-PGWP9 TKX7J-VDN26-Y2WKQ-7MG8R-X2CC9 N9M8X-QDKGK-W27Q6-2GQYT-TJC9K 4VNXV-F7PB ...

  7. Linux内核同步机制

    http://blog.csdn.net/bullbat/article/details/7376424 Linux内核同步控制方法有很多,信号量.锁.原子量.RCU等等,不同的实现方法应用于不同的环 ...

  8. JAVA基础知识之练习题——集合

    练习一: 创建一个Set集合,保存用户输入的数据 具体代码实现如下面代码中的testSet()方法. 知识点: Set集合的基本特征是元素不允许重复.HashSet不保存元素顺序,LinkedHash ...

  9. phpcms 05

    所谓的异步加载,也就是两个线程同时执行一个任务,比如一个加载文字,一个加载图片,这样子可以先看到文字 footer,html包含尾部文件 {template "content",& ...

  10. MDI窗体容器和权限设置.avi

    一.MDI窗体容器 MDi窗体是装Form的容器.平常Form(窗体)就是平常展示的最高级别,但是MDI比Form还高级.它可以让其它窗体在它的内部打开,无法超出它的范围 1 创建:将某个窗体的属性: ...