android Fragment的理解

Fragment可以当成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候,它可以加载或者移除Fragment模块。Fragment的生命周期与activity有点像,但是又有点不一样,多了好几个。

而activity的生命周期只有6个,分别是onCreate(), onStart(), onResume(), onPause(),onRestart(),onDestroy()

图片引用来源:http://www.cnblogs.com/thinkland001/archive/2011/01/21/1940930.html

当你想要实现Fragment时,你可以在某个acitivity对应的xml中加上<framelayout></framelayout>作为容器,在java中,将其加入到ViewGroup,从而得到你想要的效果。似乎还可以直接在xml中声明标签<fragment>

用了这位博主的例子以及课上的练习做了一些了解

https://www.cnblogs.com/codingblock/p/4808809.html

博主的例子比较简单好理解!!

要在activity中管理fragment,需要用到FragmentManager(注意,这是个抽象类)

想要获取FragmentManager,可通过activity的 getSupportFragmentManager()(v4扩展包)或者activity的getFragmentManager()(app包)

那到底activity怎么实现Fragment的添加与剔除呢?

大致是这样子的:

FragmentManager fragmentManager =getFragmentManager();
FragmentTransaction fragmentTransaction;

....
public void onCreate(Bundle savedInstanceState){

 transaction = fragmentManager.beginTransaction();
        Fragment fragment = new HomeFragment();//这是自己写的类,继承了Fragment
        transaction.add(R.id.container, mainfragment);//添加第一个Fragment
        transaction.commit();
       
....
     switch (checkedId) {
		case R.id.radio0://当点击了radio0时
			transaction = fragmentManager.beginTransaction();//事务开始
	         Fragment homeFragment = new HomeFragment();//这是自己写的类,继承了Fragment
	         transaction.replace(R.id.container, homeFragment);//这个之前界面已有一个fragment,
//此时要在container中先前的fragment先删掉,再添加homeFragment
	         transaction.commit();//事务提交
			break;
		case R.id.radio1:
			transaction = fragmentManager.beginTransaction();
	         Fragment sortFragment = new SortFragment();//这是自己写的类,继承了Fragment
	         transaction.replace(R.id.container, sortFragment);
	         transaction.commit();
			break;
}
....
  // LayoutInflater作用是将layout的xml布局文件实例化为View类对象。
public class SortFragment extends Fragment{
	
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View view = inflater.inflate(R.layout.fragment_sort, null);
		return view;
	}

}

萌新的第二篇android,冲鸭!希望每周都能更新至少一篇!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值