为什么使用Fragment来管理用户界面?
使用Fragment可以使得界面更为灵活,而且能够很好地适应不同尺寸的屏幕。建议使用支持库中的类(android.support.v4.app.*)来实现,可以通过升级项目的支持库从而使用到Fragment的最新的API特性
如何使用Fragment管理用户界面?
步骤一:在AndroidStudio中添加依赖关系,这是因为要使用支持库就必须在项目中将其列入依赖关系。具体操作略!
步骤二:创建CrimeActivity去继承FragmentActivity,因为FragmentActivity知道如何去管理Fragment。
Activity托管Fragment有两种方式:在Activity布局中添加(但是不够灵活),在Activity代码中添加(灵活性高,通常采用这种方式)。
步骤三:在CrimeActivity的布局文件中为Fragment安排位置,通常采用FrameLayout容器视图。xml文件代码如下:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
步骤四:新建一个名为fragment_crime的xml文件,添加控件什么的。这就是CrimeFragment的布局文件
步骤五:新建一个UIfragment类(继承Fragment),这就需要用到Fragment的生命周期相关的内容了。此类是利用onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)来实例化Fragment视图的布局,
将实例化的View返回给托管Avtivity,也就是CrimeActivity。这个过程将Fragment和Activity建立起了联系。还将Fragment和它的xml布局文件建立起了联系。代码如下:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_crime,container,false);
return v;
}
步骤六:必须是在Fragment中关联组件,并添加响应。
步骤七:FragmentManager负责将fragment的视图添加到Activity的视图结构中去。代码如下:
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragment_container);
if(fragment == null){
fragment = createFragment();
fm.beginTransaction().add(R.id.fragment_container,fragment).commit();
}