# Native-Kotlin-Android **Repository Path**: qiuny/Native-Kotlin-Android ## Basic Information - **Project Name**: Native-Kotlin-Android - **Description**: 存储Android原生案例 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-23 - **Last Updated**: 2026-02-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Android-Plugin #### 介绍 存储Android原生案例 #### ```js // 自动计算页面顶部状态栏和底部距离 Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> Greeting( name = "Android", modifier = Modifier.padding(innerPadding) ) } // 不会自动计算边界值 Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background ) { // 视图入口 ComposeArticleApp() } ``` #### Column容器常用属性 ```js Column( modifier = Modifier .statusBarsPadding() .padding(horizontal = 40.dp) .verticalScroll(rememberScrollState()) .safeDrawingPadding(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) ``` 解释: 1. statusBarsPadding():避开顶部状态栏 - 作用:在 Column 的顶部添加内边距(Padding),高度等于系统状态栏(显示时间、电池那一栏)的高度 - 目的:防止你的 UI 内容(比如标题)被状态栏遮挡或重叠 - 位置分析:放在最前面,意味着它是最外层的约束 2. padding(horizontal = 40.dp):内容左右有留白 - 作用:在 Column 的左侧和右侧各添加 40.dp 的空白 - 通常用于把登录框、按钮向中间挤压 3. verticalScroll(rememberScrollState()):内容允许滚动 - 作用:让 Column 的内容可以垂直滚动 - rememberScrollState():创建一个状态对象来记录滚动的距离。即使屏幕旋转,它也能记住你滚到了哪里 - 关键点:如果你的内容高度超过了屏幕高度(比如小屏幕手机),用户可以向下滑动查看。如果没有这一行,超出屏幕的内容会被截断无法显示 4. safeDrawingPadding():滚动内容内边距 - 作用:添加内边距以避开所有的“系统安全区域”,包括底部的导航栏(小白条/三大金刚键)和刘海屏区域 - 为什么要写在 verticalScroll 后面? 这是一个高级技巧。 写在 scroll 后面,意味着这个 padding 是加在滚动内容内部的。 效果:当你滚动到底部时,内容下方会多出一块空白,确保最底部的按钮或文字不会被系统的“小白条”或导航键遮挡。 5. horizontalAlignment = Alignment.CenterHorizontally:内容水平居中 - 作用:控制子元素在水平方向(X轴)上如何摆放 - 效果:所有子元素都会居中显示。比如一个很短的按钮,会自动处于屏幕水平正中间,而不是靠左 6. verticalArrangement = Arrangement.Center:内容垂直居中 - 作用:控制子元素在垂直方向(Y轴)上如何摆放 - 效果:如果内容高度不足以填满屏幕,所有内容会垂直居中显示(浮在屏幕中间) - 注意:如果内容超出了屏幕高度触发了滚动,这个属性的影响在视觉上就不明显了 #### 输入框键TextField盘设置 1. keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) - KeyboardType.Number:数字键盘 - KeyboardType.Text:文本 - 等等 2. 键盘按钮操作ImeAction - ImeAction.Send:用户想要发送输入字段中的文本时使用 - ImeAction.Go:用户想要跳转到输入文本的目的地时使用 - ImeAction.Search:用户想要执行搜索时使用 - ImeAction.Next:用户想要执行下一行 ```kotlin TextField( value = value, label = { Text(stringResource(label)) }, onValueChange = onValueChange, singleLine = true, keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number, imeAction = ImeAction.Next), modifier = modifier ) ```