app直播源代码,JetpackCompose实现沉浸式导航条

app直播源代码,JetpackCompose实现沉浸式导航条

MainActivity.kt

首先在 oncreate 方法里面按照注释中的三步依次添加代码

 

 

1
class MainActivity : ComponentActivity() {<br>    @RequiresApi(Build.VERSION_CODES.R)<br>    override fun onCreate(savedInstanceState: Bundle?) {<br>        // 第一步<br>        WindowCompat.setDecorFitsSystemWindows(window,false)<br>        super.onCreate(savedInstanceState)<br>        setContent {<br>            AidtTheme {<br>                // 第二步,强制设置状态栏的颜色<br>                rememberSystemUiController().setStatusBarColor(<br>                    Blue500,<br>                    darkIcons = MaterialTheme.colors.isLight<br>                )<br>                // 第三步,ProvideWindowInsets嵌套主体<br>                ProvideWindowInsets {<br>                    Surface(<br>                        modifier = Modifier.fillMaxSize(),<br>                        color = MaterialTheme.colors.background<br>                    ) {<br>                        mainBody()<br>                    }<br>                }<br>            }<br>        }<br>    }<br>}<br> 

 

mainBody 主体代码实现

 

主要方法就是让 scaffold 原理顶部一个状态栏的高度,然后底部导航条也这么做就 OK 了

 

1
<br>@Composable<br>private fun mainBody() {<br>    ...<br>    // 第一步:获取顶部状态栏的高度<br>    val statusBarHeight = with(LocalDensity.current){<br>        LocalWindowInsets.current.statusBars.top.toDp()<br>    }<br>    Scaffold(<br>        topBar = {<br>            TopAppBar(<br>                // 第二步:使用padding让scaffold与顶部隔开一个状态栏的高度<br>                modifier = Modifier.padding(top = statusBarHeight),<br>                title = { Text("主页") },<br>                navigationIcon = {<br>                    IconButton(onClick = { scope.launch { scaffoldState.drawerState.open() } }) {<br>                        Icon(Icons.Filled.Menu, null)<br>                    }<br>                }<br>            )<br>        },<br>        bottomBar = {<br>            BottomNavigation(<br>                // 第三步:使底部导航条在底部控制条的上方<br>                modifier = Modifier.navigationBarsPadding()<br>            ) {<br>                items.forEachIndexed { index, item -><br>                    BottomNavigationItem(<br>                        selected = selectedItem == index,<br>                        onClick = {<br>                            selectedItem = index<br>                            navChangePath(item.route)<br>                        },<br>                        icon = { Icon(painterResource(item.icon), null) },<br>                        alwaysShowLabel = false,<br>                        label = { Text(item.name) }<br>                    )<br>                }<br>            }<br>        },<br>    ) {<br>        ...<br>    }<br>}

 

 以上就是app直播源代码,JetpackCompose实现沉浸式导航条, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示