第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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章