请教大家一个问题,launcher里面有个HandleButton,点击之后会呈现所有app,我现在想把它直接放到Home界面,也就是直接放到桌面上面,去掉这个HandleButton,开机之后就可以直接看到这些app。workspace是一个viewgroup,我试过很多方法,效果都不是很好,比如动态增加屏幕数目,请大家给点思路?

解决方案 »

  1.   

    有人会吗?赐教
    我使用viewpager实现这个功能,但是要想要想实现其它功能很难!
      

  2.   

    如果要动态增加workspace数目的话,可以参看ADW的源码,网上有下的
      

  3.   


    我现在已经实现在workspace上面加载app,去掉了Handleview,接下来就是如何将图标排序,动态增加workspacescreen,以及系统增加一个将apk的时候如何实时的添加到桌面。看来launcher路还很长!
      

  4.   

    图标排序是个很慢的过程
    一、初始化时往favorites表里插入所有程序数据当然自己计算好screen,cellX,cellY
    二、在bindWorkspace时,根据item所在的screen判断屏幕数是否够,不够的调用addView添加屏幕(可能有指示器或需要记录总屏幕数等,该添屏的方法可以自己封装)。
    三、至于实时添加apk需要改造下launcher2那部分代码,因为它只在LauncherApplication启动的情况下才能接收到程序改变的广播(动态注册嘛,其实就是LauncherModel),修改成静态注册。这又分为两种情况:
    1、Launcher未启动。只要改写数据库,添加、更新、删除嘛
    2、Launcher已启动。把接收到的intent传给LauncherModel的onReceive处理吧,需要对数据库和workspace上的图标进行添加、更新、删除处理。附:我数据库中不存程序图标,只在bindWorkspace的时候异步读取刷新,但速度有点慢,如果你有更快的加载方法,交流下,共同进步。
      

  5.   

    我现在也在搞这个东西 想问下楼主是怎么去掉HandleButton 然后在桌面加载app的。
      

  6.   


    如果你熟悉launcher是如何加载default_workspace.xml,然后解析以及如何添加到workspace里面的话,那就不难了。我的做法就是使用launcherProvider,加载系统所有app,然后写到数据库,通过launcher的binditems(是一个回调方法)添加到workspace里面。
      

  7.   


    是什么android项目,不会是修改launcher吧?launcher里面的设计思想,值的借鉴和学习!