有些布局可能在手机上看起来很漂亮,但是拿到屏幕比较大的横屏平板上面,有些控件可能会遭到拉伸,严重影响用户体验,作为一个合格的开发人员我们应该兼顾这两种情况,所以在Android3.0之后,Android引入了碎片的概念,它可以让界面更好的在平板上展示。在Android3.0之前的版本需要引入需要先导入android-support-v4的jar包才能使用Fragment功能。
1.碎片是什么?
碎片(Fragment)是一种可以嵌套在活动当中的UI片段,它能使程序更加合理地利用大屏幕控件,所有在平板程序中应用广泛。它和活动类似,可以包含布局、有自己的生存周期。我们可以把Fragment理解成一个迷你型的活动,但是这个迷你型的活动也有可能和普通的活动一样大。
何种情况才会应用Fragment呢。就比如Android版的CSDN博客,我想把我的博文在APP中显示出来如果不利用Fragment的话,在手机上应该是这样显示的(如下图),Activity01用于显示文章的标题列表,点击一个标题进入Activity02活动中查看具体的内容,这个时候如果在Activity01中标题的内容长短不一,极有可能使其显示不美观。
Activity01 Activity02
利用Fragment的话界面应该是这样的,我们把上面Activity01、Activity02两个活动都当做是Fragment,然后把这个两个Fragment放入到一个活动中去。
2.碎片的简单用法
我们新建两个FragmentLeftActivity、FragmentRightActivity碎片,让它们在MainActivity活动中一左一右。
在继承Fragment时细心的我们能发现,会有两个不同包下的Fragment给我们引用,建议用"android.app.Fragment",因为包"android.support.v4.app.Fragment"主要是为了兼容低版本,这里我们用的是Android4.0以上了,所以用"android.app.Fragment"。
FragmentLeftActivity.java
package com.example.fragmenttest;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentLeftActivity extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.left_layout, container, false);
return view;