1.Fragment的构建:
(1)首先要在布局文件中设置Fragment控件,用于在同一位置显示指定的fragment:
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
(2) 创建自定义的fragment并继承Fragment类,并重写该父类中的方法
public class userFragment extends Fragment {
//以下两个方法必须重写
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
}
//以下两种方法可根据情况选择是否重写
@Override
public void onAttach(Context context) {
super.onAttach(context);
}
@Override
public void onDetach() {
super.onDetach();
}
}
(3)在代码中动态加载fragment
FragmentManager framenManager=getSupportFragmentManager();//获取fragment管理器
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();//android中,对Fragment的操作都要借用FragmentTrasaction类
mainFragment mainfragment=new mainFragment();//创建自定义的Fragment类对象
fragmentTransaction.add(R.id.fragment_container,mainfragment);//使用add方法将自定义的fragment添加到Xml中对应Id的Fragment控件中
fragemntTransaction.commit();//使用commit提交,完成整个fragment构建
(4)当需要对某个fragment进行参数传递时,使用Bundle和getArgument()方法配合完成参数传递
在自定义fragment类中定义静态方法,该方法返回该自定义fragment的实例。将Bundle通过setArguemnt方法传递到该自定义fragment的实例中。
public static userFragment newInstance(String title){
userFragment ufragment=nre userFragment();
Bundle bundle=new Bundle();
bundle.putString("title",title);
ufragment.setArgument(bundle);
return ufragment;
}
在该自定义fragment中取出传递的参数
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
text=view.findViewById(R.id.user_text);
//取出bundle中带的参数,并传递
if(getActivity()!=null){
text.setText(getArguments().getString("title"));
}
}