当你点击搜索图标时会出现searchView和键盘,如果用户决定点击TabLayout中的另一个标签,我会让searchView和键盘消失,但我无法获得“返回”图标按钮和搜索图标按钮消失。
以下是searchView打开并用户点击TabLayout中不同标签时的外观:
^当用户点击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中的其他标签时,如何让“后退”图标按钮和搜索图标按钮也隐藏/消失/关闭?
答案 0 :(得分:0)
试试这个:
searchView.setIconified(true);
或
MenuItemCompat.collapseActionView(menuItem)
或
searchView.onActionViewCollapsed();
searchView.setQuery("", false);
searchView.clearFocus();