示例#1
0
  @Override
  protected void onSaveInstanceState(Bundle outState) {

    super.onSaveInstanceState(outState);

    ActionBar actionBar = getActionBar();

    if (actionBar != null && actionBar.getTabCount() > 1)
      outState.putInt(getString(R.string.key_tab), actionBar.getSelectedTab().getPosition());
  }
  /** Hides every tab and shows search UI for phone lookup. */
  private void enterSearchUi() {
    if (mSearchFragment == null) {
      // We add the search fragment dynamically in the first onLayoutChange() and
      // mSearchFragment is set sometime later when the fragment transaction is actually
      // executed, which means there's a window when users are able to hit the (physical)
      // search key but mSearchFragment is still null.
      // It's quite hard to handle this case right, so let's just ignore the search key
      // in this case.  Users can just hit it again and it will work this time.
      return;
    }
    if (mSearchView == null) {
      prepareSearchView();
    }

    final ActionBar actionBar = getActionBar();

    final Tab tab = actionBar.getSelectedTab();

    // User can search during the call, but we don't want to remember the status.
    if (tab != null && !DialpadFragment.phoneIsInUse()) {
      mLastManuallySelectedFragment = tab.getPosition();
    }

    mSearchView.setQuery(null, true);

    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
    actionBar.setDisplayShowHomeEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(true);

    sendFragmentVisibilityChange(mViewPager.getCurrentItem(), false);

    // Show the search fragment and hide everything else.
    mSearchFragment.setUserVisibleHint(true);
    final FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.show(mSearchFragment);
    transaction.commitAllowingStateLoss();
    mViewPager.setVisibility(View.GONE);

    // We need to call this and onActionViewCollapsed() manually, since we are using a custom
    // layout instead of asking the search menu item to take care of SearchView.
    mSearchView.onActionViewExpanded();
    mInSearchUi = true;
  }
 @Override
 public Tab getSelectedTab() {
   android.app.ActionBar.Tab selected = mActionBar.getSelectedTab();
   return (selected != null) ? (Tab) selected.getTag() : null;
 }
 // This method returns the currently selected tab if in tabbed navigation mode and there is at
 // least one tab present
 public Tab GetSelectedTab() {
   ActionBar actionBar = this.controls.activity.getActionBar();
   ActionBar.Tab tab = actionBar.getSelectedTab();
   return tab;
 }