首先看一下 Fragmen的生命周期如图所示

Fragment调用的方法以及说明

方法名                                                      说明
onAttach ()                        Fragment被附加到Activity的时,调用此函数,在这个方法中可以获得宿主Activity。
onCreate ()                        Fragment被创建的时,调用此函数。
onCreateView ()              Fragment的布局加载时,调用此函数。
onActivityCreated ()        当宿主Activity启动完毕后,调用此函数。
onStart ()                           启动Fragment时,调用此函数。
onResume ()                    Fragment恢复时,调用此函数。
onPause ()                        Fragment暂停时,调用此函数。
onStop()                            Fragment停止时,调用此函数。
onDestroyView()             销毁Fragment中的View控件时,调用此函数。
onDestroy()                       销毁Fragment时,调用此函数。
onDetach()                        Fragment从Activity脱离时,调用此函数

Fragment在Activity里面的生命周期

ListView&ViewPager&Fragment以及第三方组件PagerSlidingTabString联合使用

程序如下

FragmentPagerActivit程序

package com.jeredu.administrator.classday11application;import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;import com.astuetz.PagerSlidingTabStrip;
import com.jeredu.administrator.classday11application.adapter.MyFragmentAdapter;
import com.jeredu.administrator.classday11application.fragment.pagerFragment;import java.util.ArrayList;
import java.util.List;public class FragmentPagerActivity extends AppCompatActivity {private ViewPager vp;private PagerSlidingTabStrip pst;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getSupportActionBar().hide();setContentView(R.layout.activity_fragment_pager);vp = (ViewPager) findViewById(R.id.vp);pst = (PagerSlidingTabStrip) findViewById(R.id.pst);List<Fragment> list =new ArrayList<>();List<String> title = new ArrayList<>();title.add("体育");title.add("娱乐");title.add("奥运");title.add("财经");title.add("国际");for (int i=1;i<=5;i++){Fragment fragment = new pagerFragment();Bundle bundle = new Bundle();bundle.putInt("arg",i);fragment.setArguments(bundle);list.add(fragment);}MyFragmentAdapter ma =new MyFragmentAdapter(getSupportFragmentManager(),list,title);vp.setAdapter(ma);//调用适配器pst.setIndicatorColor(getResources().getColor(R.color.colorAccent));pst.setIndicatorHeight(5);//条的高度pst.setTextColor(getResources().getColor(R.color.colorPrimary));//文字颜色pst.setTabBackground(R.mipmap.ic_launcher);//文字背景图片pst.setShouldExpand(true);//是否平分pst.setViewPager(vp);}
}

布局文件

<?xml version="1.0" encoding="utf-8"?>
<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"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.jeredu.administrator.classday11application.FragmentPagerActivity"><com.astuetz.PagerSlidingTabStripandroid:layout_width="match_parent"android:layout_height="20dp"android:id="@+id/pst"></com.astuetz.PagerSlidingTabStrip><android.support.v4.view.ViewPagerandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/vp"android:layout_below="@+id/pst"></android.support.v4.view.ViewPager></RelativeLayout>

pagerFragment程序

<span style="font-size:12px;">package com.jeredu.administrator.classday11application.fragment;import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;import com.jeredu.administrator.classday11application.IntentActivity;
import com.jeredu.administrator.classday11application.R;
import com.jeredu.administrator.classday11application.adapter.MyListAdapter;
import com.jeredu.administrator.classday11application.adapter.News;import java.util.ArrayList;
import java.util.List;/*** A simple {@link Fragment} subclass.*/
public class pagerFragment extends Fragment {public pagerFragment() {// Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentreturn inflater.inflate(R.layout.fragment_pager, container, false);}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);ListView lv  = (ListView) getView().findViewById(R.id.lv);final List<News> list = new ArrayList<>();MyListAdapter myListAdapter =new MyListAdapter(list,getActivity());lv.setAdapter(myListAdapter);final Bundle bundle = getArguments();lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {News news =list.get(i);Intent intent = new Intent(getActivity(), IntentActivity.class);intent.putExtra("obj",  news);Bundle b1=new Bundle();b1.putString("arg1","今天是七月七七夕节");intent.putExtra("bundle",b1);startActivity(intent);}});if(bundle!=null){int arg = bundle.getInt("arg");switch (arg){case  1:for (int i=0;i<20;i++){list.add(new News(R.mipmap.ic_launcher,"体育新闻 "+i,"今天","新浪网"));}myListAdapter.notifyDataSetChanged();break;case 2:for (int i=0;i<20;i++){list.add(new News(R.mipmap.ic_launcher,"体育新闻 "+i,"今天","新浪网"));}myListAdapter.notifyDataSetChanged();break;case  3:for (int i=0;i<20;i++){list.add(new News(R.mipmap.ic_launcher,"体育新闻 "+i,"今天","新浪网"));}myListAdapter.notifyDataSetChanged();break;case  4:for (int i=0;i<20;i++){list.add(new News(R.mipmap.ic_launcher,"体育新闻 "+i,"今天","新浪网"));}myListAdapter.notifyDataSetChanged();break;case  5:for (int i=0;i<20;i++){list.add(new News(R.mipmap.ic_launcher,"体育新闻 "+i,"今天","新浪网"));}myListAdapter.notifyDataSetChanged();break;};}}
}</span>
<FrameLayout 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.jeredu.administrator.classday11application.fragment.pagerFragment"><!-- TODO: Update blank fragment layout --><ListViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/lv"></ListView></FrameLayout>

MyListAdapter适配器

<span style="font-size:12px;">package com.jeredu.administrator.classday11application.adapter;import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import com.jeredu.administrator.classday11application.R;import java.util.List;/*** Created by Administrator on 2016/8/9.*/
public class MyListAdapter extends BaseAdapter {private List<News> list;private Context context;public MyListAdapter(List<News> list, Context context) {this.list = list;this.context = context;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int i) {return list.get(i);}@Overridepublic long getItemId(int i) {return 0;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {ViewHolder vh ;if(view == null){vh = new ViewHolder();view = LayoutInflater.from(context).inflate(R.layout.list_layout,null);vh.img= (ImageView) view.findViewById(R.id.ig);vh.titile= (TextView) view.findViewById(R.id.title);vh.pubDate= (TextView) view.findViewById(R.id.pubDate);vh.from= (TextView) view.findViewById(R.id.from);view.setTag(vh);}else{vh= (ViewHolder) view.getTag();}News news= list.get(i);vh.img.setImageResource(news.getImg());vh.titile.setText(news.getTitle());vh.pubDate.setText(news.getPubDate());vh.from.setText(news.getFrom());return view;}public class ViewHolder{ImageView img;TextView titile;TextView pubDate;TextView from;}
}</span>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/ig"android:src="@mipmap/ic_launcher"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/title"android:text="我是标题"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/pubDate"android:text="今天"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/from"android:text="新浪网"/>
</LinearLayout>

MyFragmentAdapter适配器

<span style="font-size:12px;">import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;import java.util.List;/*** Created by Administrator on 2016/8/9.*/
public class MyFragmentAdapter extends FragmentPagerAdapter{private List<Fragment>list;private List<String> titles;public MyFragmentAdapter(FragmentManager fm ,List<Fragment>list, List<String> titles) {super(fm);this.list=list;this.titles=titles;}@Overridepublic int getCount() {return list.size();}@Overridepublic Fragment getItem(int position) {return list.get(position);}@Overridepublic CharSequence getPageTitle(int position) {return titles.get(position);}
}</span>

News新闻类

<span style="font-size:12px;">public class News implements Serializable {private int img;private String title;private String pubDate;private String from;public News(){}public News(int img, String title, String pubDate, String from) {this.img = img;this.title = title;this.pubDate = pubDate;this.from = from;}public int getImg() {return img;}public void setImg(int img) {this.img = img;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getPubDate() {return pubDate;}public void setPubDate(String pubDate) {this.pubDate = pubDate;}public String getFrom() {return from;}public void setFrom(String from) {this.from = from;}}</span>

实现方法是:首先创建新闻类 然后创建ListView,将一条条新闻放进去,之后将ListView放入到ViewPager里面,然后将在每一个Fragment都放入一个ViewPager这样进行调用,并用PagerSlidingTabString实现连动与翻页,常见的例子很多,这个方法也很实用。

Fragment的简单实用与Fragment的生命周期相关推荐

  1. 小程序生命周期_来,简单说说小程序的生命周期?

    简单说说小程序的生命周期? 在小程序中生命周期分为三大类 应用生命周期 页面生命周期 组件生命周期 应用生命周期 onLaunch(){ console.log('onLaunch监听小程序初始化') ...

  2. 简单说一下servlet的生命周期?

    简单说一下servlet的生命周期? 一.简单说一下servlet的生命周期? 二.Servlet API中forward() 与redirect()的区别? 一.简单说一下servlet的生命周期? ...

  3. Fragment生命周期与Fragment执行hide、show后的生命周期探讨

    一.Fragment 生命周期中的每个方法的意义与作用: 1.setUserVisibleHint()(此方法不属于生命周期方法):设置Fragment 用户可见或不可见时调用此方法,此方法在Frag ...

  4. 简单了解软件开发的生命周期和流程、思想

    所有知识体系文章,GitHub已收录,欢迎老板们前来Star! GitHub地址: https://github.com/Ziphtracks/JavaLearningmanual 既然我们以后从事的 ...

  5. Fragment系列总结(一)Fragment概念与生命周期

    写在前面 Fragment是Google在Android3.0新加的东西,它的功能和作用如同名字一样,代表着一块块碎片,而这些碎片则可以灵活地嵌入到各Activity之中. 其他关于Fragment的 ...

  6. Fragment在ViewPager中的生命周期

    转载自 hdszlk的博客     原文链接:https://www.2cto.com/kf/201607/530540.html 1.一直以来的疑问 Fragment在ViewPager到底经历了哪 ...

  7. 友盟页面统计 - 关于Viewpager中的Fragment的生命周期

    Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的,在此不表: Fragment从出现到广泛运用也有一段时间了,其标准生命周期也仅比Activity ...

  8. 关于FragmentManager动态管理Fragment时Fragment生命周期的探究

    Fragment是Android中的重要组件,在Android 3.0的时候添加进来. 关于Fragment的生命周期,我相信了解过的开发人员都应该把以下方法脱口而出:onAttach, onCrea ...

  9. 使用FragmentPagerAdapter和FragmentStatePagerAdapter时Fragment生命周期区别

    使用FragmentPagerAdapter时Fragment的生命周期 FragmentPagerAdapter 会保存在内存中保存Fragment的实例,当ViewPager中Fragment的数 ...

  10. Android:Fragment生命周期(结合Activity的生命周期进行分析)

    文章目录 前言 一.Fragment生命周期概述 启动 退出 二.Fragment生命周期细述 1.onCreate(Bundle) 2.onCreateView(LayoutInflater, Vi ...

最新文章

  1. 5大洲,32个国家:剑桥分析公司的触角到底有多远?
  2. python set使用
  3. linux awk列数据处理工具使用示例
  4. 对称加密算法原理--OpenSSL演示、iOS代码运用及CCCrypt安全隐患
  5. 从零开始学习docker(十九)Swarm mode 集群服务间通信--RoutingMesh
  6. java访问权限 public private protected
  7. IDEA如何在包下建立子包
  8. http://www.shengshiyouxi.com
  9. latex表插入的位置不对_VSCode_LaTex_英文amp;中文配置
  10. centos mysql 同步时间_centos:mysql主从同步配置(2018)
  11. 传奇世界手游公益服【剑指轩辕2】服务端搭建源码使用指南
  12. 单片机入门(预备知识)-适合初学者
  13. [RK3288]PMU配置(RK808)【转】
  14. tp5学习记录:导入前端静态模板
  15. 生成排列 --- 蛮力法,Johnson-Trotter算法
  16. 7-18 用格里高利公式求给定精度的PI值
  17. Golang-channel实现
  18. 浙大高分子物理郑强教授的激情演讲
  19. Android四大组件之一服务
  20. 做外贸开发客户用的邮件群发软件,同行达40%~70%打开率?

热门文章

  1. 【Markdown 2】LaTeX插入数学公式(摘要总结)
  2. 精通CSS:山顶角与阴影
  3. 学习博客:IO流之节点流、处理流
  4. C#把数字转化成条形码
  5. 关爱固执的人以及最常见的心理补偿
  6. vite多环境的配制
  7. 爬取二手房信息--python爬虫
  8. 2021年裂解(裂化)工艺考试题库及裂解(裂化)工艺模拟考试题库
  9. 快递到件越来越多,行政将如何做好快递收发管理工作?
  10. 国庆长假引爆新零售 浙江天搜科技如何“加持”实体店变革