android沉浸式界面设置,隐藏标题栏,导航栏和底部栏,androidstudio

在学习制作一个本地音乐播放器时,尝试做出沉浸式界面效果,查看了网上很多方法,感觉都不完善,调试了半天,意外获得了自己想要的效果,便想记录下来。

无沉浸效果
在这里插入图片描述

设置沉浸后效果,顶部部件没有紧贴手机界面顶部是因为我设置了marginTop属性
在这里插入图片描述
记得在搜索的时候,得知这种效果似乎是在4.4以后才能实现,然后随着版本的变迁,方法也在改变。我的方法应该在6.0版本以上都通用。
6.0对应API23,首先在Project结构的目录下的res目录里新建values -23目录

在这里插入图片描述
选择Version,然后选择向右的箭头
在这里插入图片描述
输入23,点OK
在这里插入图片描述
创建成功
在这里插入图片描述
再右键,new一个resource文件,命名为styles
在这里插入图片描述
在这里插入图片描述

在values-23的styles中加入如下代码,自定义主题样式,继承了无标题栏样式,将导航栏设置为透明等等,具体各个属性的作用,还有待进一步探究

<?xml version="1.0" encoding="utf-8"?>
<resources>



    <style name="AppTheme.Main" parent="Theme.AppCompat.Light.NoActionBar">

        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:windowTranslucentNavigation">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
    </style>


</resources>

然后在Androimanifest文件里对需要设置为沉浸式界面对应Activity设置theme属性

   <activity
            android:name=".MainActivity"
            android:theme="@style/AppTheme.Main" />

然后在Activity中添加如下隐藏导航栏的方法,在oncreate方法里调用一次,然后在有需要的地方也可以调用

 //隐藏导航栏
    protected void hideBottomUIMenu() {
        //隐藏虚拟按键,并且全屏
        if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
            View v = this.getWindow().getDecorView();
            v.setSystemUiVisibility(View.GONE);
        } else if (Build.VERSION.SDK_INT >= 19) {
            //for new api versions.
            View decorView = getWindow().getDecorView();
            int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;
            decorView.setSystemUiVisibility(uiOptions);
        }
    }

最后在对应的layout文件里对次一级布局添加如下属性,若对顶层布局设置便不起作用,不知为啥。别忘了为顶层布局设置合适的背景达成沉浸目的。

 android:fitsSystemWindows="true"

目前问题是在点击edittext后,弹出键盘的同时会弹出导航栏,而收回键盘后,导航栏不自动收回。暂时想的办法,监听键盘收回操作,收回时调用上述隐藏导航的方法

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Android Studio中设置底部导航需要以下步骤: 1. 首先,在你的项目中打开`res`文件夹,然后右键点击`res`文件夹,选择`New -> Android Resource File`创建一个新的资源文件。 2. 在弹出的对话框中,输入文件名并选择`Navigation`作为文件类型,然后点击`OK`按钮。 3. 接下来,在导航图编辑器中,右键点击左侧的空白区域,选择`New Destination`来添加目标页面。 4. 在弹出的对话框中,选择要添加的目标页面的类型,并填写相关信息,然后点击`OK`按钮。可以根据需要添加多个目标页面。 5. 在导航图编辑器中,选择要设置底部导航的目标页面,然后点击右侧的三个点图标,选择`Set start destination`选项来设置该页面为起始页面。 6. 在主活动(MainActivity)布局文件中,添加一个`BottomNavigationView`控件作为底部导航。例如: ```xml <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottomNavigationView" android:layout_width="match_parent" android:layout_height="wrap_content" app:menu="@menu/nav_menu" /> ``` 7. 创建一个菜单资源文件(如`nav_menu.xml`),并在其中定义底部导航的菜单项。例如: ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/navigation_home" android:icon="@drawable/ic_home" android:title="Home" /> <item android:id="@+id/navigation_dashboard" android:icon="@drawable/ic_dashboard" android:title="Dashboard" /> <item android:id="@+id/navigation_notifications" android:icon="@drawable/ic_notifications" android:title="Notifications" /> </menu> ``` 8. 在主活动(MainActivity)中,找到底部导航控件,并为其设置导航图资源文件和导航选项的选中监听器。例如: ```java BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView); NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); NavigationUI.setupWithNavController(bottomNavigationView, navController); ``` 现在,你已经成功设置底部导航。运行你的应用程序,你将看到底部导航显示在屏幕底部,并且可以切换不同的页面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值