现在移动设备发展的非常迅速,手机和平板在生活中变得越来越普及,而它们的最大区别就在于手机屏幕的大小。而这种屏幕大小的差距,也导致了一些问题的出现。比如在手机上显示的很漂亮的界面,在平板上显示的可能很难看,有些控件被过度的拉长、元素之间的空隙很大等等情况。
但是从android3.0版本开始引入了碎片的概念,可以让界面在平板上展示的更好。简单说一下碎片是什么:碎片就是一种可以嵌入到活动当中的UI片段,让程序更加合理和充分的利用大屏幕的空间。现在我们来看一个简单的例子,想象我们在开发一个新闻应用程序,通过RecyclerView在界面上展示了一组标题,当点击标题时就打开另外一个界面显示标题对应的内容。但是如果在平板中,标题如果单独占据一个界面,标题列表将会被拉长至整个平板屏幕,这样会很难看。所以,更好的设计方案是将新闻标题列表界面和新闻详细内容界面分别放在两个碎片中,然后在一个活动里引入两个碎片,这样整个屏幕空间就充分的利用起来了,也显得美观了很多。
说了这么多,相比对碎片也有了一些了解,接下来练习一下上面的这个例子。在一个活动中添加两个碎片,并让这个碎片平分活动的空间。首先新建一个左侧碎片布局left_fragment.xml,代码如下:
很简单的布局,放置了一个按钮,让它水平居中显示,然后再以同样的方式新建右侧碎片布局right_fragment.xml
这里,我们给右侧的碎片布局添加了背景颜色,并显示了一段话。接着我们新建一个LeftFragment类,并让它继承自Fragment。
这里我们仅仅是重写了Fragment的onCreateView()方法,然后在这个方法中通过LayoutInflater的inflate()方法,将之前定义的left_fragment布局动态加载进来。同样的方法再创建RightFragment类
这样我们通过上面两个类,就将布局碎片动态的加载了进来,记下来我们修改一下activity_main.xml中的代码:
我们使用了fragment标签在布局中添加碎片,其中android:name属性来显示的指明要添加碎片的类名,注意一定要把包名的路径都添加上。 现在运行程序,如下:
但是这个例子实在太简单了,我们就是添加了两个碎片,平分了整个活动的布局,后面我们来学习碎片更高级的使用技巧