Android launcher3布局和结构

Launcher3最主要的是一个Activity,基本上所有操作都集中在这个Activity上。在Launcher.Java 当中,setContentView()的参数是R.layout.launcher,只研究下桌面竖屏的情况,源码在res/layout-port/launcher.xml。

请看运行着launcher3的手机屏幕,布局的最外面是一个FrameLayout,紧紧地包围了一个叫DragLayer的ViewGroup,他继承自FrameLayout,主要功能就是处理拖拽事件,当你在拖拽一个图标的时候,就是一个view放到了DragLayer里面,跟随你的手在移动。

下面部分就是手机屏幕上左右滑的好几屏幕的东西叫做Workspace,Workspace的父类的父类是PagedView,一个用来处理左右滑动的ViewGroup,Workspace里面可以滑动的单独一屏叫CellLayout,CellLayout负责图标和小部件的显示和整齐摆放。

再下面就是在滑动屏幕的时候看见下方的指示器PageIndicator,告诉你桌面有几屏,当前在哪一屏上。最下面4个固定不动的图标和中间一个Button显示所有应用整个叫做Hotseat,用来放置比较常用的应用,比如拨号,短信,相机等。

屏幕最上方有个搜索框,在我们拖动图标的时候,搜索框会替换成“删除“,整个这部分叫做SearchDropTargetBar。长按桌面空白区域的时候会进入一个界面,这里可以对屏幕进行换序操作,下面有三个按钮“壁纸”,“小部件”和“设置”,这个在布局文件里的id为overview_panel。接下来还有几个为cling结尾的子布局,这些是桌面第一次启动时候的帮助界面,告诉你怎么点击怎么用。

图片如下(来自互联网转载)


Android launcher3布局和结构