一、主要是描述下大致的使用步驟,主要是分三個部分,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去