第9篇.Fragment相關

一、主要是描述下大致的使用步驟,主要是分三個部分,fragment部分、activity部分,兩者通信部分

1、Fragment部分,這個部分從某種角度上來說是獨立於activity的,這也就是fragment的優勢,主要是給這個fragment找到一個layout,並找到他上面的控件,簡單事例如下:

public class ImgPreviewFragment extends Fragment{

	private View Pre_View;
	private TextView NumRatio;
	private ImageView TypeImg;
	private TextView SourceName;
	private LinearLayout VideoLayout;
	
	
	private ImageButton Pre;
	private ImageButton Play;
	private ImageButton Next;
	private ImageButton ToImageView;
	
	
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		View view = inflater.inflate(R.layout.lexus_img_preview, container, false);
		Pre_View = (View)view.findViewById(R.id.img_pre_info_layout);
		findView();
		setOnClick();
		return view;
	}


2、Activity部分,要在activity所在的layout.xml裏面建立一個容器(就是一個佈局),之後創建fragment對象,並把fragment對象導入到容器當中去即可

主要代碼如下 ,思路爲創建fragment管理器,增加刪除fragment,顯示和隱藏fragment:

	private FragmentManager mFragmentManager;
	private ImgPreviewFragment mImgPreviewFragment;
	void ShowOrHidePreviewFragment(boolean show){
		mFragmentManager = getFragmentManager();
		FragmentTransaction transaction = mFragmentManager.beginTransaction(); 
		if(mImgPreviewFragment == null){
			mImgPreviewFragment = new ImgPreviewFragment();
		}
		if(show){
			transaction.show(mImgPreviewFragment);
			mImgPreviewFragment.SetHandler(myHandler);
			transaction.commit();
		}else{
			transaction.hide(mImgPreviewFragment);
			mImgPreviewFragment.SetHandler(null);
			transaction.commit();

		}
	}
	
	void AddOrRemovePreviewFragment(boolean add){
		mFragmentManager = getFragmentManager();
		FragmentTransaction transaction = mFragmentManager.beginTransaction(); 
		if(mImgPreviewFragment == null){
			mImgPreviewFragment = new ImgPreviewFragment();
		}
		if(add){
			transaction.add(R.id.img_preview_content,mImgPreviewFragment);
		}else{
			transaction.remove(mImgPreviewFragment);
		}
		transaction.commit();
	}
	

3、Activity和fragment之間的通信

Activity 到fragment,直接使用fragment對象的函數即可,fragment到Activity,一般是使用handler來進行,該handler由activity傳遞到fragment去


發佈了29 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章