分页显示有两种方式 一种是使用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. 20150916_001 vba 基础

    一.什么是“宏”.“宏”有什么用 关于“宏”的详细定义,可以参考百度百科的解释(点击查看).我给它一个简单的或许不太严谨的定义: 宏的通俗定义:宏是被某些软件所能识别.理解并执行的特定代码/脚本. 宏 ...

  2. c# 中crystal report输出PDF文件

    工程中引入以下crystal report的类库crystaldecisions.crystalreports.enginecrystaldecisions.reportsourcecrystalde ...

  3. python终端颜色设置

    1.颜色定义说明 格式:\033[显示方式;前景色;背景色m   前景色 背景色 颜色 --------------------------------------- 30 40  黑色 31 41 ...

  4. ..在lua中运用

    ..连接两个字符串 th> a="hello" th> b="world" th> print(a..b) helloworld th> ...

  5. Software caused connection abort: socket write error

    Exception in thread "main" java.net.SocketException: Software caused connection abort: soc ...

  6. 如何重置CentOS/RHEL 7中遗忘的根用户帐户密码

    你有没有遇到过这种情况:想不起来Linux系统上的用户帐户密码?要是你忘了根用户密码,情况就更为糟糕.你无法执行任何面向整个系统的变更.要是你忘了用户密码,很容易使用根帐户来重置密码. 可要是你忘了根 ...

  7. 我的android学习经历25

    android工程下R文件报错 今天我新建工程的时候,R文件报错,但是以前的文件并没有错误. 下面说一下我的情况: 我原来的工作区间是在D盘,后来我在E盘新建了一个工作区间,并且用E新建的工作区间,只 ...

  8. 利用jdbc处理oracle大数据---大文件和二进制文件

    一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...

  9. CodeForces 496B Secret Combination

    Secret Combination Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u ...

  10. ODBC连接mysql

    配置/etc/odbc.ini 执行命令:isql freeswitch freeswitch 123456 -v 第一个报错: [08S01][unixODBC][MySQL][ODBC 5.3(w ...