现象
在开发中发现,launcher3 待机界面的QSBSearchBar widget,在我们进入主菜单界面后,可能会显示在主菜单界面
原因
进入主菜单,收到searchmanager发送的广播消息,search框会重建。
解决方法:
重建时若在allapp界面则执行隐藏操作。请贵司帮忙按如下修改:
packages/apps/Launcher3/src/com/android/launcher3/Launcher.java
public void bindSearchablesChanged() {
...;
mSearchDropTargetBar.setQsbSearchBar(getOrCreateQsbBar());
+ if(isAppsViewVisible()) {
+ mSearchDropTargetBar.foreHideSearchBar(false);
+ }
}
packages/apps/Launcher3/src/com/android/launcher3/SearchDropTargetBar.java
public void hideSearchBar(boolean animated) {
if (mIsSearchBarHidden) return;
if (animated) {
prepareStartAnimation(mQSBSearchBar);
mHideSearchBarAnim.start();
} else {
...;
}
mIsSearchBarHidden = true;
}
+ public void foreHideSearchBar(boolean animated) {
+ if (animated) {
+ prepareStartAnimation(mQSBSearchBar);
+ mHideSearchBarAnim.start();
+ } else {
+ mHideSearchBarAnim.cancel();
+ if (mQSBSearchBar != null) {
+ mQSBSearchBar.setAlpha(0f);
+ }
+ }
+ mIsSearchBarHidden = true;
+ }