第一步:我们需要一个空的Activity并继承ActionBarActivity

 

第二步:创建一个Fragment,怎么创建一个Fragment呢,先创建一个layout命名FragmentMain,随后创建对应的java文件,命名MainFragment,文件的命名我们通常以Fragment开头。对应的java文件必须继承Fragment,注意导入的包,要是android.support.v4.app.Fragment这个包,随后重写onCreatView这个方法。

 

第三步:创建另一个Fragment,先创建一个layout命名FragmentAnother,随后创建对应的java文件,命名AnotherFragment,文件的命名我们通常以Fragment开头。对应的java文件必须继承Fragment,注意导入的包,要是android.support.v4.app.Fragment这个包,随后重写onCreatView这个方法。

 

第四步:我们需要在Fragment所呈现的Activity上设置,当MainActivity创建的时候进行初始化。首先判断一下Activiyt的当前状态,savedInstanceState==null时执行Fragment初始代码,代码如下:

 

public class MainActivity extends ActionBarActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        if(savedInstanceState == null){            getSupportFragmentManager().beginTransaction().add(R.id.container,new MainFragment()).commit();        }    }}

 

用getSupportFragmentManager方法获取到Fragment的管理器,随后beginTransaction方法开启事务,添加相对于的fragment,然后commit提交,add第一个参数表示其父组件,第二个就是需要展现的Fragment的了

 

 

第五步:然后我们开始配置MianFragment这个java文件,不进行配置的话,即使Activity打开了,Fragment也没有任何内容,第二步有说到,我们需要重写onCreatView这个方法,这个方法有个返回值,将Fragment返回出去,也就是要将FragmentMain这个布局文件返回出去,代码如下:

 

public View onCreateView(final LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {    View root = inflater.inflate(R.layout.fragment_main,container,false);    return root;}

 

到这里,我们启动APP即可显示第一个Fragment了,如何做到Fragment来切换呢

 

第六步:在主Fragment中添加一个按钮,同来切换到另一个Fragment,此时我们就需要在第五步的onCreatView方法中添加代码了,代码如下:

 

public View onCreateView(final LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {    View root = inflater.inflate(R.layout.fragment_main,container,false);    Button btnStart = (Button) root.findViewById(R.id.btnStartAnthoerFragment);    btnStart.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            getFragmentManager().beginTransaction().addToBackStack(null).replace(R.id.container,new AnotherFragment()).commit();        }    });    return root;}

 

 

注意:这里的findViewById需要在root下引用,因为这个按钮在Fragment布局当中

 

然后为这个按钮设置事件侦听。如何实现切换Fragment呢,首先调用getFragmentManager方法获取Fragment管理器,然后开启事务beginTransaction这个方法。

注意:addToBackStack方法是用来设置返回键可操作Fragment,从而返回到上一个Fragment,如果不设置,在跳转到第二个Fragment时按返回键会退出程序,这个方法可根据实际要求添加或舍去。

之前我们用的是add方法来添加Fragment使其显示,这里不能使用add方法了,需要使用replace方法来替换原有Fragment,然后commit提交。

 

第七步:随后我们就要配置第二个Fragment的java文件AnthorFragment这个文件了,和第五步差不多,要让第二个Fragment显示出来,必须要让他返回出去,代码如下:

 

public class AnotherFragment extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_another,container,false);        return view;    }}

 

 

到这里我们就能显示主Fragment并点击上面的按钮跳转到第二个Fragment了,并且按返回键可以跳回第一个Fragment,有的时候我们需要添加返回按钮,并不是返回键,返回按钮怎么设置呢,这里就需要在第二个Fragment下也就是AnotherFragment下添加代码了,首先要给其设置一个返回按钮,然后通过findViewById找到,代码如下:

 

public class AnotherFragment extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_another,container,false);        Button btnBack = (Button) view.findViewById(R.id.btnBack);        btnBack.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                getFragmentManager().popBackStack();            }        });        return view;    }}

 

为这个按钮设置侦听事件,在按钮按下时调用getFragmentManager获取到Fragment管理器,然后调用popBackStack方法即可返回到上一个Fragment了,值得注意的是:上一个Fragment需要设置addToBackStack方法添加到任务栈里面去。到这里简单的Fragment就已经完成了。

 

 

By:Brycen Liu

更多相关文章

  1. Android(安卓)EditText 点击时不弹出键盘但显示光标
  2. android Ubuntu adb: cannot execute binary file: 可执行文件格
  3. Android(安卓)Studio 签名证书文件在build.gradle(app)中配置
  4. 【Android】onInterceptTouchEvent 方法收不到ACTION_MOVE事件
  5. Android(安卓)Studio常见报错总结
  6. 使用adb时,为什么只有RockChip的ID需要加入到adb_usb.ini文件里呢
  7. Android(安卓)Studio NDK开发命令配置
  8. Android获取设备唯一ID的方法
  9. 【Android】AsyncTask实现异步处理

随机推荐

  1. mac下Android apk 破解流程
  2. Android中Activity全局共享方法AppContex
  3. Android界面开发问题总结
  4. Android 子项目 列表
  5. 浅谈Android布局样式
  6. Android(安卓)Studio 更新升级之增量升级
  7. android 固定横屏幕竖屏
  8. android的线程封装
  9. Android设置无标题窗口
  10. cocos2dx学习笔记:在Android使用sqlite3