在 Android 中,底部工具栏通常指的是 BottomNavigationView 或者系统提供的底部导航栏。下面分别说明这两种情况如何隐藏:

隐藏 BottomNavigationView

如果你的底部工具栏是由 BottomNavigationView 控件实现的,你可以通过简单的代码来显示或隐藏它。

步骤:

  • 在布局文件中定义 BottomNavigationView
  • Activity Fragment 中找到这个控件并设置监听器。
  • 编写方法来显示或隐藏 BottomNavigationView

示例代码:

假设你的 MainActivity 中有如下的 BottomNavigationView

public class MainActivity extends AppCompatActivity {
    private BottomNavigationView bottomNavigationView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bottomNavigationView = findViewById(R.id.bottom_navigation_view);

        // 设置监听器
        bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.action_home:
                        // 显示或隐藏底部导航栏
                        break;
                    case R.id.action_settings:
                        // 显示或隐藏底部导航栏
                        break;
                }
                return true;
            }
        });
    }

    // 隐藏底部导航栏
    private void hideBottomNavigation() {
        bottomNavigationView.setVisibility(View.GONE);
    }

    // 显示底部导航栏
    private void showBottomNavigation() {
        bottomNavigationView.setVisibility(View.VISIBLE);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.

隐藏系统底部导航栏

如果要隐藏的是系统自带的底部导航栏,那么可以通过以下方式来实现:

使用 Java 代码:

// 隐藏系统底部导航栏
private void hideSystemNavigationBar() {
    getWindow().getDecorView().setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
    );
}

// 显示系统底部导航栏
private void showSystemNavigationBar() {
    getWindow().getDecorView().setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_VISIBLE
    );
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

修改默认配置:

base/packages/SettingsProvider/res/values/defaults.xml 文件中,可以设置默认不显示底部状态栏。

但是需要注意的是,这通常需要修改 Android 源码才能实现,并且可能会影响到全局设置。

如果你的应用需要在不同场景下切换显示与隐藏系统底部导航栏,可以使用上面的 Java 代码来动态控制。