Я скачал Launcher3 (Google Kitkat Launcher) из источников 4.4.
Я импортировал его в eclipse. Я избавился от ошибок. И мой лаунчер работает довольно хорошо.
Но чего-то не хватает. Страница "GOOGLE NOW" при прокрутке влево.
Я не могу активировать Google сейчас. В любом случае мне это не нужно. Я хочу поместить свой собственный фрагмент или макет на первую страницу, а другие страницы будут работать так же, как обычный лаунчер. Как Google Now Launcher (Kitkat Launcher от Google) на странице Google Now.
Вот так:
Я добавил свой макет следующим образом:
вот оригинальные коды из 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;
}
}
как вы можете видеть, когда на его первой странице я изменил макет, но у меня возникают проблемы с дочерними представлениями, анимацией и т. д., в любом случае, после этого я даже не могу получить доступ к другим страницам. я везде ставил try catch, когда получаю ошибки из-за того, что «celllayout не может привязываться к относительному bla bla ..»
моя попытка поймать так
try
{
cell layout stuff its trying to make animations etc.
}
catch (Exception e)
{
//empty
}
я не мог заставить его работать в данный момент, как страницы Google Now :) кто-нибудь знает о добавлении фрагмента/макета на первую страницу?
Спасибо.