最终还是决定用 Jetpack Compose 重写 Halo 后端管理 APP。一个是原生更好一点,然后主要是 Jetpack Compose 写起来比前端三件套爽哈哈(我才不会说是因为解决不好跨域问题和 Web 开发 App 调用原生 API 麻烦和 Vue 用起来不熟练呢ᕙ(`▿´)ᕗ),不过
一、ConstraintLayout约束布局,使用前需要导入相应的依赖:implementation "androidx.constraintlayout:constraintlayout-compose:1.0.1"ConstraintLayou 最新版查询:https://d
一、Dialog对话框,content 参数允许我们传入自定义的 Composable 组件。它和普通的 Composable 组件不同在于其需要依赖独立的 Window 来进行显示。下面代码演示了点击按钮后显示对话框:var openDialog by remember { mutableStat
一、Checkbox复选框,代码如下所示:val checkState = remember { mutableStateOf(false) }Checkbox( checked = checkState.value, onCheckedChange = { checkState.val
一、Button1.基本按钮Button 默认没有任何样式,仅仅是一个点击事件响应组件,需要在 content 参数中使用其他组件来实现 Button。Button( onClick = {}) { Text(text = "Hello")}2.按钮添加图标在 Tex
一、IconIcon 组件支持三种类型的图片设置,如下所示Column {Icon(imageVector = ImageVector.vectorResource(id = R.drawable.set_svg), contentDescription = "矢量图&quo
Android8.0开始引入了通知渠道的概念,每条通知都要属于一个对应的渠道,每个应用程序都可以自由的创建当前应用拥有哪些通知渠道,但这些通知渠道的控制权是掌握在用户手上的,用户可以自由地选择这些通知渠道的重要程度,是否响铃、是否震动或者是否要关闭这个渠道的通知。对于每个应用来说,通知渠道的划分是非
耗时操作需要放在子线程中运行,否则会导致主线程被阻塞,从而影响用户对软件的正常使用。一、线程基本用法Kotlin中使用线程方法和Java类似,可以选择继承Thread类或实现Runnable接口来实现线程,而Kotlin还给我们提供了一种更加简单的开启线程的方法,写法如下:thread {// 编写