Fragment

通過getSupportFragmentManager()方法獲取當(dāng)前activity的Fragment管理者

fm=getSupportFragmentManager();

創(chuàng)建一個AFragment碎片的實例

af=new AFragment();

FragmentTransaction 對fragment進行添加、移除、替換、以及執(zhí)行其他操作,每一個事務(wù)都是同時執(zhí)行一套變化,在每一個事物中設(shè)置你想要的變化,最后調(diào)用commit()提交事務(wù)

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()方法獲取當(dāng)前activity的Fragment管理者

fm=getSupportFragmentManager();

//創(chuàng)建一個AFragment碎片的實例

af=new AFragment();

/*

*FragmentTransaction 對fragment進行添加、移除、替換、以及執(zhí)行其他操作

* 每一個事務(wù)都是同時執(zhí)行一套變化

* 在每一個事物中設(shè)置你想要的變化,最后調(diào)用commit()提交事務(wù)

*/

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)沒有創(chuàng)建,就創(chuàng)建一個

//并通過add方法添加到事務(wù)中

// 如果碎片已經(jīng)創(chuàng)建 就用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;

}

}

//用來隱藏已經(jīng)加載過的碎片

private void hideAll(){

FragmentTransaction fh=fm.beginTransaction();

if(af!=null){

fh.hide(af);

}

if(bf!=null){

fh.hide(bf);

}

fh.commit();

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容