我从4.4来源下载了Launcher3(Google的Kitkat Launcher)。
我把它导入了eclipse。我摆脱了错误。我的发射器工作得很好。
但缺少一些东西。滚动到左侧时“GOOGLE NOW”页面。
我现在无法激活谷歌。不管怎样,我不需要那个。我想将自己的片段或布局放入第一页,其他页面将像普通启动器一样工作。 就像Google的体验Launcher(谷歌的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现在页面那样让它工作:) 有人知道将片段/布局添加到第一页吗?
感谢。
答案 0 :(得分:1)
如果您想以与Google Now相同的方式添加某些片段或视图,Launcher3代码支持此功能。您基本上有两种方法可以获得所需的行为:
对Launcher类进行子类化并覆盖hasCustomContentToLeft()
以返回true和addCustomContentToLeft()
,您可以在其中创建/扩充要添加的视图。如果您希望在屏幕打开时收到通知,请务必致电addToCustomContentPage
并实施CustomContentCallbacks
。
直接在Launcher类中实现上述相同的方法。
希望这有帮助, 米哈伊