实现fragment生命周期的方法

       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生命周期的方法,希望能够帮到大家!

提供全面的搜索引擎优化学习交流,专注网站优化和搜索引擎营销推广服务。用专业的SEO技术为企业网站提升关键词排名,让你的网站不仅满足用户体验还要适合搜索引擎优化规则。
易速网站优化公司 » 实现fragment生命周期的方法
享更多特权,立即登录下载海量资源
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡