必赢亚洲手机app下载


366net必赢亚洲手机版隐蔽在身边的办公神器

当你早已懒到要用机器人泡茶苹果电脑

Launcher3桌面开发苹果电脑

主目录见:Android高级进阶知识(那是总目录索引)
Launcher3源码地址:Launcher3-master
[This tutorial was written by
Ticoo]

左一屏

想必部分小伙伴不知底如何是左一屏,可能是负一屏。以自家的垂询,在智能手机还尚未普及的时候,最早的左一屏的概念是根源Apple
苹果电脑的dashboard操作面板,如下图

dashboard

后来iphone手机沿用了Mac的定义,相对PC而言,手机上的dashboard相对的洗练了重重。如图

iphone dashboard

苹果电脑,以上图片来自Apple官网

用过谷歌(Google)亲儿子手机的同伙都会发现,原生的Launcher并不曾左一屏的效应,而像如今新出的手机都带了这一个职能。
但事实上dashboard的机能谷歌(Google)已经提需求我们了.

作者们找到WorkSpace里的 createCustomContentContainer
,那么些点子就是开创dashboard的效能。

WorkSpace.java

    public void createCustomContentContainer() {
        CellLayout customScreen = (CellLayout)
                mLauncher.getLayoutInflater().inflate(R.layout.workspace_screen, this, false);
        customScreen.disableDragTarget();
        customScreen.disableJailContent();

        mWorkspaceScreens.put(CUSTOM_CONTENT_SCREEN_ID, customScreen);
        mScreenOrder.add(0, CUSTOM_CONTENT_SCREEN_ID);

        // We want no padding on the custom content
        customScreen.setPadding(0, 0, 0, 0);

        addFullScreenPage(customScreen);

        // Ensure that the current page and default page are maintained.
        mDefaultPage = mOriginalDefaultPage + 1;

        // Update the custom content hint
        if (mRestorePage != INVALID_RESTORE_PAGE) {
            mRestorePage = mRestorePage + 1;
        } else {
            setCurrentPage(getCurrentPage() + 1);
        }
        updateCustomContentMarker();
    }

笔者们都晓得Launcher的工作台是WorkSpace,而Workspace里的每一屏就是CellLayout啦。可以发现,从布局
本田CR-V.layout.workspace_screen
inflate出CellLayout,然后以全屏的方法充裕到WorkSpace中,内定dashboard的特定screenId
CUSTOM_CONTENT_SCREEN_ID -301,同时革新大家的暗中同意主页 mDefaultPage。

领会创设的章程,这怎么把它启用呢?
找到它的调用方法,在Launcher的bindScreens方法里。创制dashboard的基准是
hasCustomContentToLeft()

@Override
    public void bindScreens(ArrayList<Long> orderedScreenIds) {
        bindAddScreens(orderedScreenIds);
        // If there are no screens, we need to have an empty screen
        if (orderedScreenIds.size() == 0) {
            mWorkspace.addExtraEmptyScreen();
        }

        // Create the custom content page (this call updates mDefaultScreen which calls
        // setCurrentPage() so ensure that all pages are added before calling this).
        if (hasCustomContentToLeft()) {
            mWorkspace.createCustomContentContainer();
            populateCustomContentContainer();
        }
    }

hasCustomContentToLeft方法,有一个LauncherCallbacks的回调,那样大家就有思路了

     /**
     * To be overridden by subclasses to hint to Launcher that we have custom content
     */
    protected boolean hasCustomContentToLeft() {
        if (mLauncherCallbacks != null) {
            return mLauncherCallbacks.hasCustomContentToLeft();
        }
        return false;
    }
  1. 可以在继承Launcher的子类里设置多个LauncherCallbacks,
    并让hasCustomContentToLeft() 方法重临true即可
  2. 或许直接修改那一个法子,直接回到true也得以

但实际上上边的主意都不太好,因为在不少的体验中,有人喜欢那么些作用,也有人不希罕这一个功用。故大家相比好的做法是安顿性二个开关的效果,
让用户自动接纳即可。

关于dashboard放什么内容就很值得考究了,设计得好的话就会让用户喜好,这么些就付给产品经营吧。

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图