百恒网络
实现fragment生命周期的方法
  • 百恒服务
  • APP开发
  • 网页案例
  • 网页知识
  • 关于我们
  • 联系我们
  • 实现fragment生命周期的方法

    2018-09-04 15:49:49 2929
           CrimeFragment类是与模型及视图对象交互的控制器,用于显示特定crime的明细信息,并在用户修改这些信息后立即进行更新。

           在GeoQuiz应用中,activity通过其生命周期方法完成了大部分逻辑控制工作。而在CriminalIntent应用中,这些工作是由fragment的生命周期方法完成的。fragment的许多生命周期方法对应着我们熟知的Activity方法,如onCreate(Bundle)方法。

           在CrimeFragment.java中,新增一个Crime实例成员变量,实现Fragment.onCreate(Bundle)方法,如下代码所示。

           覆盖Fragment.onCreate(Bundle)方法(CrimeFragment.java)
           public class CrimeFragment extends Fragment {
           private Crime mCrime;
           @Override
           public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           mCrime = new Crime();
           }
           } 

           在这里,南昌APP开发公司要告诉大家的是需注意以上实现代码中的以下几点:

           首先,Fragment.onCreate(Bundle)是公共方法,而Activity.onCreate(Bundle)是保护方法。Fragment.onCreate(...)方法及其他Fragment生命周期方法必须是公共方法,因为托管fragment的activity要调用它们。

           其次,类似于activity,fragment同样具有保存及获取状态的bundle。如同使用Activity.onSaveInstanceState(Bundle)方法那样,我们也可以根据需要覆盖Fragment.onSaveInstanceState(Bundle)方法。

           另外,fragment的视图并没 有在Fragment.onCreate(...)方法中生成。虽然我们在Fragment.onCreate(...)方法中配置了fragment实例,但创建和配置fragment视图是另一个fragment生命周期方法完成的:

           public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)

           该方法实例化fragment 视图的布局,然后将实例化的 View 返回给托管 activity 。

            LayoutInflater及ViewGroup是实例化布局的必要参数。Bundle用来存储恢复数据,可供该方法从保存状态下重建视图。

           在CrimeFragment.java中,添加onCreateView(...)方法的实现代码,从fragment_crime.xml布局中实例化并返回视图,如下代码所示。

           覆盖onCreateView(...)方法(CrimeFragment.java)
           public class CrimeFragment extends Fragment {
           private Crime mCrime; 

           @Override
           public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           mCrime = new Crime();
           }
           @Override
           public View onCreateView(LayoutInflater inflater, ViewGroup container,
           Bundle savedInstanceState) {
           View v = inflater.inflate(R.layout.fragment_crime, container, false);
           return v;
           }
           } 

           在 onCreateView(...) 方法中, fragment 的视图是直接通过调用 LayoutInflater.inflate(...)方法并传入布局的资源ID生成的。第二个参数是视图的父视图,我们通常需要父视图来正确配置组件。第三个参数告知布局生成器是否将生成的视图添加给父视图。这里,我们传入了false参数,因为我们将以activity代码的方式添加视图。

           以上就是百恒网络为大家介绍的关于实现fragment生命周期的方法,希望能够帮到大家!
    展开分享
    服务
    案例
    首页
    动态
    联系
    咨询