Fragment

通过getSupportFragmentManager()方法获取当前activity的Fragment管理者

fm=getSupportFragmentManager();

创建一个AFragment碎片的实例

af=new AFragment();

FragmentTransaction 对fragment进行添加、移除、替换、以及执行其他操作,每一个事务都是同时执行一套变化,在每一个事物中设置你想要的变化,最后调用commit()提交事务

FragmentTransaction ft=fm.beginTransaction();

事例

package com.example.bb4fragment1114dongtai;

import android.os.Bundle;

import android.app.Activity;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentActivity;

import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentTransaction;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends FragmentActivity implements OnClickListener{

private Button bt_a;

private Button bt_b;

private AFragment af;

private BFragment bf;

private FragmentManager fm;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

bt_a=(Button)findViewById(R.id.bt_a);

bt_b=(Button)findViewById(R.id.bt_b);

bt_a.setOnClickListener(this);

bt_b.setOnClickListener(this);

//通过getSupportFragmentManager()方法获取当前activity的Fragment管理者

fm=getSupportFragmentManager();

//创建一个AFragment碎片的实例

af=new AFragment();

/*

*FragmentTransaction 对fragment进行添加、移除、替换、以及执行其他操作

* 每一个事务都是同时执行一套变化

* 在每一个事物中设置你想要的变化,最后调用commit()提交事务

*/

FragmentTransaction ft=fm.beginTransaction();

ft.add(R.id.guanlizhe, af);

ft.commit();

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

hideAll();

switch (v.getId()) {

case R.id.bt_a:

//如果碎片(Fragment)没有创建,就创建一个

//并通过add方法添加到事务中

// 如果碎片已经创建 就用show()方法显示

FragmentTransaction fta=fm.beginTransaction();

if(af==null){

af=new AFragment();

fta.add(R.id.guanlizhe, af);

}else{

fta.show(af);

}

fta.commit();

break;

case R.id.bt_b:

FragmentTransaction ftb=fm.beginTransaction();

if(bf==null){

bf=new BFragment();

ftb.add(R.id.guanlizhe, bf);

}else{

ftb.show(bf);

}

ftb.commit();

break;

}

}

//用来隐藏已经加载过的碎片

private void hideAll(){

FragmentTransaction fh=fm.beginTransaction();

if(af!=null){

fh.hide(af);

}

if(bf!=null){

fh.hide(bf);

}

fh.commit();

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容