只在一个Activity中移除/隐藏SearchView

5
我在项目中有三个活动,我想在其中一个活动中移除/隐藏操作栏中的搜索视图。
我尝试使用searchView.setVisibility(View.GONE);但是仍然存在可点击的图标。
main_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:id="@+id/menu_search"
      android:title="@string/menu_search"
      android:icon="@drawable/ic_menu_search"
      android:showAsAction="ifRoom|collapseActionView"
      android:actionViewClass="android.widget.SearchView" />
<item
    android:id="@+id/item_clear_memory_cache"
    android:title="@string/menu_item_clear_memory_cache"/>

<item
    android:id="@+id/item_clear_disc_cache"
    android:title="@string/menu_item_clear_disc_cache"/>

</menu>
3个回答

12

menu.findItem(R.id.menu_search).setVisible(false); 就是正确的方式。


6
您可以通过以下方式隐藏搜索视图和搜索图标:
您可以通过以下方式隐藏搜索视图和搜索图标:
searchItem.setVisible(false);
searchView.setVisibility(View.GONE);

然后,您可以通过以下方式将其恢复:
searchItem.setVisible(true);
searchView.setVisibility(View.VISIBLE);

1

好的,在这里您可以找到我的完整示例。不要忘记在需要显示搜索视图的活动或片段中设置可见性和可见性。

我正在寻找一种方法在首选项中隐藏搜索视图。

public class SettingsFragment extends PreferenceFragmentCompat {
    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        setPreferencesFromResource(R.xml.preferences, rootKey);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // this means that we're telling the Activity that is hosting the Fragment that we want to display menus
        setHasOptionsMenu(true);
    }

    /**
     * ********************* SEARCH ********************
     */
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        final MenuItem item = menu.findItem(R.id.action_search);
        final SearchView searchView = (SearchView) item.getActionView();
        item.setVisible(false);
        searchView.setVisibility(View.GONE);
    }

}

和 menu_main.xml

<item android:id="@+id/action_search"
    android:title="@string/action_search"
    app:actionViewClass="androidx.appcompat.widget.SearchView"
    android:icon="@android:drawable/ic_menu_search"
    app:showAsAction="always|collapseActionView"
    />


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接