Android Fragment分页显示的实现
分页显示有两种方式 一种是使用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分页显示的实现的更多相关文章
- Android之分页加载数据
基本的原理和我的上一篇随笔“Android之下拉刷新ListView”差不多,代码里面有注释,这里就不废话了,直接上代码. 自定义的分页显示ListView——PagedListView.java代码 ...
- 【Android自学日记】【转】Android Fragment 真正的完全解析(下)
上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上). 本篇将介绍上篇博客提到的:如何管理Frag ...
- Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
Toolbar作为ActionBar使用介绍 本文介绍了在Android中将Toolbar作为ActionBar使用的方法. 并且介绍了在Fragment和嵌套Fragment中使用Toolbar作为 ...
- Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 ge ...
- Android Fragment使用(一) 基础篇 温故知新
Fragment使用的基本知识点总结, 包括Fragment的添加, 参数传递和通信, 生命周期和各种操作. Fragment使用基础 Fragment添加 方法一: 布局里的标签 标识符: tag, ...
- Android Fragment应用实战
现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上, ...
- Android Fragment 真正的完全解析(下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和 ...
- Android Fragment 深度解析
1.Fragment的产生与介绍 Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视.针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套app,然后拷贝一份,修改布局以适应 ...
- Android Fragment
1.Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期. 2.Fragment 生命周期: 首页 最新文章 在线课程 业界 开发 ...
随机推荐
- lhgdialog在打开的窗口里点击按钮关闭当前窗口
lhgdialog在打开的窗口里点击按钮关闭当前窗口 var api = frameElement.api, W = api.opener; api.close();
- MD5签名方法
/** * md5签名 * @param plainText 要签名的字符串 * @param enc 要编译的格式 gbk:utf-8 * @return */ public static Stri ...
- CentOS 安装ftp
Linux安装ftp组件 1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y insta ...
- java提高篇---HashSet
对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素.所以如果对HashMap比较熟悉,那么HashSet是so easy!! 一.定义 public class ...
- Jenkins构建Git manager服务器的源码
1,下载scm manager 源码库管理,下载后解压即可: 2,运行bin目录下的scm-server.bat文件,启动服务: 3,建议将scm-server放在git客户端的安装目录下,方便管理 ...
- hahaha
[问题描述] 小Q对计算几何有着浓厚的兴趣.他经常对着平面直角坐标系发呆,思考一些有趣的问题.今天,他想到了一个十分有意思的题目: 首先,小Q会在x轴正半轴和y轴正半轴分别挑选n个点.随后,他将轴的点 ...
- Cheatsheet: 2013 08.14 ~ 08.19
.NET Lucene.Net ultra fast search for MVC or WebForms site => made easy! C# State Machines HttpCl ...
- ubuntu vi/vim编辑器必知必会
转载出处:http://blog.csdn.net/xiajun07061225/article/details/7039413 一.我们为什么要学习vim编辑器? Linux的命令行界面下面有非常多 ...
- 服务器端验证--验证框架验证required.
struts2表单验证里field-validator type值一共可以取哪些?都什么含义? int 整数:double 实数:date 日期:expression 两数的关系比较: email E ...
- CUBRID学习笔记 7 ms常见错误
基本不是权限问题,就是dll问题. 重新下载或应用dll注意版本. 权限的问题,先本机测试. 看看在web管理有无问题. 剩下的基本就简单了 欢迎转载 ,转载时请保留作者信息.本文版权归本人所有, ...