在去年的Google I/O大会上,Google发布了 ConstraintLayout他使我们能够使用一个平面的视图层次来构建复杂的界面布局。android studio的视图编辑器也对其实现了完整支持。
与此同时,Google开源了FlexboxLayout 他与CSS Flexible 布局模块具有相同的功能。接下来的例子我们将使用FlexboxLayout实现一些特殊的功能。
你可以把FlexboxLayout理解成一个高级的LinearLayout,他和LinearLayout一样都是在水平和垂直方向上按顺序放置子view,他与LinearLayout最大的不同在于FlexboxLayout 有一个wrapping功能。当你增加flexWrap=”wrap”属性后,假如在当前方向上没有足够的空间可以放置新的子view,他会在新的一行上放置子view。
同一布局适配多种屏幕尺寸
我们想要在水平方向依次放置一些view,假如有效的空间发生变化后(不同的手机设备、手机方向发生改变、多窗口模式导致的界面重绘等)我们想要在新的一行继续放置上一行没有空闲空间显示的view。