无关技术
凡一家之中,勤敬二字能守得几分,未有不兴,若全无一分,无有不败.
本章概要
本章主要讲了Android Studio添加依赖库的方式,Fragment的生命周期,以及优先使用支持库Fragment的原因.
Fragment的生命周期
Fragment代表Activity来工作,所以它的状态来代表Activity的状态,这种对应很重要.
onAttach(Context),onCreate(Bundle),onCreateView()
全部在setContentView方法中调用
创建onActivityCreated(Bundle)-->onCreate
onStart() --> onStart
onResume() --> onResume
onPause() --> onPause
onStop() --> onStop
onDestroyView -->Activity 关闭
onDestroy(),onDetach() -->onDestroy
Activity托管Fragment的两种方式
- 在布局中添加fragment
- 在代码中添加Fragment
第一种方式简单,但不够灵活.
第二种是创建的fragment添加到fragment队列中,然后交由FragmentManager来调度.
FragmentManager的使用
在Activity中
FragmentManager fm = getSupportFragmentManager();
FragmentManager可以根据布局id来获取相应的Fragment
`
Fragment fragment = fm.findFragmentById(R.id.fragment_container);
`
if(fragment==null){
fragment = new CrimeFragment();
fm.beginTransaction()
.add(R.id.fragment_container,fragment)
.commit();
}
`
创建一个Fragment事务,执行一个添加操作,然后提交该事务.
为什么选择支持库中的fragment
原声版本的Fragment内置在系统中,如果应用要支持各个系统版本,在不同设备上运行的Fragment可能会有不同的表现.比如某个bug,在系统版本里已修正,而在4.0里却没有.而在支持库中的Fragment,在发布时会打包在应用里,使用支持库中的fragment在不同的设备里运行,都会有相同的表现.
另外,Google每年会多次更新支持库,并借此更新新特性,修复bug.所以支持库使用最新版本的就可以了.Android支持库是无冕之王.