显示/隐藏特定片段的BottomNavigationView

问题描述 投票:0回答:1

在我的android应用程序中,当用户将SearchView放在焦点上时,我希望底部菜单栏消失(这也会弹出软键盘)。当SearchView失去焦点时,我想再次显示底部的导航栏。

我尝试使用setVisibility(),并且该视图确实隐藏或显示,但是由于某些原因它始终保持其高度。下面是我的BottomNavigationView的代码:

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    app:menu="@menu/bottom_navigation_menu"
    app:elevation="80dp"
    app:labelVisibilityMode="labeled"
    app:itemTextColor="@color/bottom_nav_color"
    app:itemIconTint="@color/bottom_nav_color"
    android:background="?attr/backgroundColor">

用于处理导航栏隐藏/显示的代码:

// Needed to close the SearchView when pressing back (instead of just losing focus)
mSearchView.setOnQueryTextFocusChangeListener(
    (v, hasFocus) -> {
        if (!hasFocus) {
            adapter.isSearchMode = false;
            bottomNavigationView.setVisibility(View.VISIBLE);
            searchMenuItem.collapseActionView();
            adapter.notifyDataSetChanged();
        } else {
            adapter.isSearchMode = true;
            bottomNavigationView.setVisibility(View.GONE);
            searchMenuItem.collapseActionView();
            adapter.notifyDataSetChanged();
        }
    });
java android material-design visibility bottomnavigationview
1个回答
0
投票
setVisibility(View.GONE)

View.Gone =没有剩余的视图空间。

© www.soinside.com 2019 - 2024. All rights reserved.