我正在尝试创建自己的Android Launcher,所以我一直在阅读Google自己的Launcher2代码,Cyanogen的Trebuchet代码以及随ADK提供的Home示例,但仍然遇到同样的问题:主屏幕是什么样的布局(带有快捷方式和小部件以及用户可选壁纸的那个)?
据我所知,Trebuchet主要基于Launcher2代码,但筛选它确实很难。
答案 0 :(得分:0)
快速浏览github上的Trebuchet资源
https://github.com/CyanogenMod/android_packages_apps_Trebuchet
他们似乎大量使用自定义布局。
虽然纯粹是一个例子,但是一些布局xml使用PagedViewGridLayout
,它在名为PagedViewGridLayout.java的文件的src文件夹中定义
public class PagedViewGridLayout extends GridLayout implements Page
GridLayout又是一个标准的Android组件 - 只是它的名字似乎是你想要的启动器类型。显然,像当前发射器这样复杂的东西会使用许多变种和技巧来制作各种可配置的交互式窗格。
理解源代码的基本关键是找出布局xml文件的层次结构(以及从代码创建而不是从xml中膨胀的任何内容)。然后查看继承层次结构和使用的各种自定义布局的机制。