您的位置:首页 > 其它

第9篇.Fragment相关

2016-08-16 08:34 155 查看
一、主要是描述下大致的使用步骤,主要是分三个部分,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去
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: