繁体   English   中英

Android Launcher3-Google即时页面

[英]Android Launcher3 - Google Now Page

我从4.4 Sources下载了Launcher3(Google的Kitkat Launcher)。

我将其导入eclipse中。 我摆脱了错误,并且启动器运行良好。

但是缺少一些东西。 向左滚动时进入“ GOOGLE NOW”页面。

我现在无法激活google。无论如何我都不需要。 我想将自己的片段或布局放入首页,其他页面的工作方式与普通启动器相同。 就像Google的体验启动器(Google的Kitkat Launcher)的Google即时页面..

像这样 : 在此处输入图片说明

我添加了这样的布局:

这是来自workspace.java的原始代码

  public long insertNewWorkspaceScreen(long screenId, int insertIndex) {
    if (mWorkspaceScreens.containsKey(screenId)) {
        throw new RuntimeException("Screen id " + screenId + " already exists!");
    }

    CellLayout newScreen = (CellLayout)
            mLauncher.getLayoutInflater().inflate(R.layout.workspace_screen, null);

    newScreen.setOnLongClickListener(mLongClickListener);
    newScreen.setOnClickListener(mLauncher);
    newScreen.setSoundEffectsEnabled(false);
    mWorkspaceScreens.put(screenId, newScreen);
    mScreenOrder.add(insertIndex, screenId);
    addView(newScreen, insertIndex);
    return screenId;
}

这是我在workspace.java上编辑的代码

      public long insertNewWorkspaceScreen(long screenId, int insertIndex) {
        if (mWorkspaceScreens.containsKey(screenId)) {
            throw new RuntimeException("Screen id " + screenId + " already exists!");
        }
if (screenId == 2) //Firstscreen/page
{

 RelativeLayout newScreen = (RelativeLayout)
                mLauncher.getLayoutInflater().inflate(R.layout.blinkfeed, null);

        newScreen.setOnClickListener(mLongClickListener);
        newScreen.setOnClickListener(mLauncher);
        newScreen.setSoundEffectsEnabled(false);
     //   mWorkspaceScreens.put(screenId, newScreen);
        mScreenOrder.add(insertIndex, screenId);
        addView(newScreen, insertIndex);
        return screenId;

}
else
{
        CellLayout newScreen = (CellLayout)
                mLauncher.getLayoutInflater().inflate(R.layout.workspace_screen, null);

        newScreen.setOnLongClickListener(mLongClickListener);
        newScreen.setOnClickListener(mLauncher);
        newScreen.setSoundEffectsEnabled(false);
        mWorkspaceScreens.put(screenId, newScreen);
        mScreenOrder.add(insertIndex, screenId);
        addView(newScreen, insertIndex);
        return screenId;
}
    }

如您所见,当它的第一页更改布局时,但是在子视图,动画等方面出现问题,无论如何,在那之后我什至无法访问其他页面。 由于“ celllayout无法绑定到相对bla bla ..”而出现错误时,我在所有地方都尝试捕获。

我的尝试抓住这样

try
{
cell layout stuff its trying to make animations etc.
}
catch (Exception e)
{
//empty
}

我现在无法像现在的google now页面那样工作:)是否有人知道将片段/布局添加到首页吗?

谢谢。

如果要以与Google即时相同的方式添加一些片段或视图,则Launcher3代码支持该功能。 基本上,您可以通过两种方式获得所需的行为:

  • 对Launcher类进行子类化,并覆盖hasCustomContentToLeft()以返回true并添加addCustomContentToLeft() ,您可以在其中创建/添加要添加的视图。 如果要在打开屏幕时收到通知,请确保调用addToCustomContentPage并实现CustomContentCallbacks

  • 直接在Launcher类中实现与上述相同的方法。

希望这会有所帮助,Mihai

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM