Android launcher3中QSBSearchBar会在主菜单界面显示的问题。

现象

在开发中发现,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;
   +  }

你可能感兴趣的:(Android,android系统)