Android引入了Fragment机制后,页面设计变得更加灵活了,同时也让开发变得更加快捷方便。那么现在就来了解下什么是Fragment
Fragment,英译为碎片的意思,顾名思义,他是一个可以放置在Activity上的控件,同时他也可以在自己上面放置控件。我们可以简单地把他理解成一个轻量级的Activity。这样一来我们就大概明白了fragment的作用了。
那么怎么使用呢?
首先,你需要自定义一个类去继承Fragment,就好像你去定义一个Activity一样。
这里要注意,Fragment类分为V4包下的和App包下的。V4包是兼容以前版本的,建议使用。而我们Activity可以直接去继承AppCompatActivity,因为AppCompatActivity是兼容FragmentManager的,这个后面再讲。
当我们自定义的Fragment实现类去继承了Fragment父类的时候,可以重写以下三个方法
onCreateView:创建布局文件的
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.footer_refresh, container, false);
return view;
}
onViewCreate:紧跟onCreateView后面执行
/**
* 该方法紧跟onCreateView之后执行
* @param view
* @param savedInstanceState
*/
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
}
onActivityCreate:Fragment所在的Activity创建后调用这个方法
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
另外还可以通过getActivity()方法得到fragment所在的Activity
对于Fragment,我们最后做这样的总结:他是放置在Activity上的一层控件,但同时他又可以基于自身所在Activity去实现自己的布局,Android中的其他控件都可以放在Fragment的布局里。如果说Activity是国家的话,Fragment就是一座城市。当然,Fragment自身也可以包含Fragment。实现Fragment的多重嵌套。
下面介绍Fragment的静态实现:
Fragment类创建好之后,你需要在Activity中去添加一个fragment控件标签
设置好name属性,这个name就是你自己定义的fragment的名称
类似下面这样。这时候Activity就会显示你添加的Fragment来了
<fragment
android:id="@+id/myfragment"
android:name="fragment.Indexfragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
不过这种方式使用的比较少,使用最多的还是动态加载Fragment
这就需要用到Fragment相关的另一个类FragmentManager了
我们下篇再讲。