分页显示有两种方式 一种是使用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. [Unity3D][Vuforia][IOS]vuforia在unity3d中添加自己的动态模型,识别自己的图片,添加GUI,播放视频

    使用环境 unity3D 5 pro vuforia 4 ios 8.1(6.1) xcode 6.1(6.2) 1.新建unity3d工程,添加vuforia 4.0的工程包 Hierarchy中 ...

  2. Uva 1103 古代象形文字

    题目链接:http://vjudge.net/contest/140550#problem/B 紫书P163. 1.根据16进制图转成2进制图. 每个点dfs一下,马上就把最外围的连通分量编号求出来了 ...

  3. nohup & rabbitmq & python

    用Python脚本执行rabbitmq的消费 nohup python consumer.py > out.log & 结果郁闷啊,怎么都查看不到输出! 终于找到了答案: 原来pytho ...

  4. 操作SQLite的dbhelper

    操作SQLite的dbhelper public class DbHelper { string connStr = @"Data Source=" + System.Enviro ...

  5. An error occurred while filtering resources-----maven项目报错

    解决办法 需要在pom中设定jdk的版本 <plugins> <!-- compiler插件, 设定JDK版本 --> <plugin> <groupId&g ...

  6. placeholder 解决UITextField中placeholder和text文本同时显示的问题

    TextField都使用了placeholder属性,但在代码中又设置了text属性,因此ViewController会同时显示placeholder文本和text文本. 这个问题让我彻底崩溃.按道理 ...

  7. Java获取某月天数

    Java获取某月天数 Calendar   cal   =   new   GregorianCalendar(); //或者用Calendar   cal   =   Calendar.getIns ...

  8. Java中HashMap遍历的两种方式

    Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...

  9. BZOJ 3672 [Noi2014]购票 (熟练剖分+凸壳维护)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3672 题意:给出一棵有根树(1为根),边有长度.每个点u有三个属性(len[u], ...

  10. TCP/IP协议简介

    计算机网络是什么? 简单地理解,计算机网络的任务就是传输数据.为了完成这一复杂的任务,国际标准化组织ISO提供了OSI参考模型,这种模型把互联网网络氛围7层,分别是物理层.数据链路层.网络层.传输层. ...