Launcher3桌面页面布局结构
桌面页面布局结构
一、最外层容器
- LauncherRootView
继承自InsettableFrameLayout
,作为桌面布局的最外层容器,包含所有桌面相关视图。
二、核心交互容器:DragLayer
继承自BaseDragLayer
(父类为InsettableFrameLayout
),负责处理拖动事件,包含以下子视图:
1. 主桌面区域(Workspace)
- 类型:继承自
PagedView
(支持左右滑动切换页面) - 作用:承载桌面图标和部件的主要区域
- 子结构:
- 包含多个
CellLayout
(数量 = 桌面页数,一页对应一个CellLayout
)- CellLayout(继承自
ViewGroup
):规范排列内容,内部包含ShortcutAndWidgetContainer
- ShortcutAndWidgetContainer(继承自
ViewGroup
):直接承载图标视图- DoubleShadowBubbleTextView:应用图标(继承自
BubbleTextView
,带文字和阴影)
- DoubleShadowBubbleTextView:应用图标(继承自
- ShortcutAndWidgetContainer(继承自
- CellLayout(继承自
- 包含多个
2. 底部固定区域(Hotseat)
- 类型:继承自
CellLayout
- 作用:存放桌面底部4个常用图标
- 特性:不随页面切换滑动,始终固定显示
- 子结构:同
CellLayout
,包含ShortcutAndWidgetContainer
和DoubleShadowBubbleTextView
3. 辅助功能视图
- WorkspacePageIndicator:页面切换指示器(原点形式,显示当前页码和总页数)
- DropTargetBar(继承自
FrameLayout
):卸载图标时弹出的操作面板 - Folder(继承自
AbstractFloatingView
):点击文件夹时显示,内部结构:FolderPagedView
→CellLayout
→ShortcutAndWidgetContainer
→BubbleTextView
4. 多任务相关视图
- LauncherRecentsView:多任务页面(继承自
RecentsView
,父类PagedView
)- 特性:桌面显示时隐藏,包含多个
TaskView
(每个对应一个运行中任务)
- 特性:桌面显示时隐藏,包含多个
- OverviewActionsView:截图时显示,带分享图片按钮
- ClearAllButton(继承自
Button
):多任务页面的“清除所有任务”按钮