![](/img/trans.png)
[英]How to open AOSP default launcher app Launcher3 in Android Studio?
[英]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.