点击TabLayout中的不同标签时,如何进行搜索图标和后退按钮图标会消失?

时间:2017-11-15 18:53:42

标签: android tabs android-actionbar searchview android-tablayout

当你点击搜索图标时会出现searchView和键盘,如果用户决定点击TabLayout中的另一个标签,我会让searchView和键盘消失,但我无法获得“返回”图标按钮和搜索图标按钮消失。

以下是searchView打开并用户点击TabLayout中不同标签时的外观:

enter image description here

^当用户点击TabLayout中的不同标签时,由于某种原因,在searchView打开点击之前,搜索图标会显示在左侧而不是右侧。

这是我在menu_main.xml中的代码:

 <item
    android:id="@+id/menuSearch"
    android:title="@string/search"
    android:hint="@string/search"
    android:icon="@drawable/ic_search_black_24dp"
    app:showAsAction="ifRoom|collapseActionView"
    app:actionViewClass="android.support.v7.widget.SearchView"

     />

这是我在public boolean onCreateOptionsMenu(final Menu menu)内的MainActivity代码:

    mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            final InputMethodManager imm = (InputMethodManager)getSystemService(
                    Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(searchView.getWindowToken(), 0);

         //   searchView.setLayoutParams(new ActionBar.LayoutParams(Gravity.END));



          //  actionBar.setDisplayHomeAsUpEnabled(false);
          //  searchView.setIconifiedByDefault(false); 


           /* if (mViewPager.callOnClick()){
                actionBar.setDisplayHomeAsUpEnabled(false);
                  searchView.setIconifiedByDefault(false);
            }*/

            searchView.onActionViewCollapsed(); //closes searchView

修改

  if (mViewPager.getCurrentItem() == 0 || mViewPager.getCurrentItem() == 1 || mViewPager.getCurrentItem() == 2) {
  menu.findItem(R.id.menuSearch).collapseActionView();


  }






        }

        @Override
        public void onPageScrolled(int position, float offset, int offsetPixels) {
        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }



    });

注释掉的代码是我尝试过的,但似乎没有做任何事情。当我点击TabLayout中的其他标签时,如何让“后退”图标按钮和搜索图标按钮也隐藏/消失/关闭?

1 个答案:

答案 0 :(得分:0)

试试这个:

searchView.setIconified(true);

MenuItemCompat.collapseActionView(menuItem)

searchView.onActionViewCollapsed();
searchView.setQuery("", false);
searchView.clearFocus();