七爪源码:面向视图开发人员的 Jetpack Compose—LinearLayout
yuyutoo 2024-10-19 11:08 13 浏览 0 评论
在 Views 中,LinearLayout 用于线性布局视图?—?水平或垂直。 那么在compose中LinearLayout的等价物是什么?
基本上在 Jetpack Compose 中,我们使用行/列组合来实现相同的结果。 那么让我们开始吧……
提示:如果你赶时间,你可以看看代码片段和图片,你就会明白整个事情......
1. 安卓:方向
在 LinearLayout 中,您可以使用 android:orientation=”horizontal|vertical” 属性来定义其子项的方向,在 Compose 中,我们使用 android:orientation=”horizontal” 的 Row 和 android:orientation=”vertical” 的 Column 组成 达到相同的结果。
这是代码...
@Composable
fun TheAwesomeColumn() {
Column(modifier = Modifier.padding(16.dp)) {
RedBox()
Spacer(modifier = Modifier.height(16.dp))
OrangeBox()
Spacer(modifier = Modifier.height(16.dp))
GreenBox()
}
}
而对于行...
@Composable
fun TheCuteRow() {
Row(Modifier.padding(16.dp)) {
RedBox()
Spacer(modifier = Modifier.width(16.dp))
OrangeBox()
Spacer(modifier = Modifier.width(16.dp))
GreenBox()
}
}
结果…
2.安卓:重力
指定对象应如何定位其内容 android:gravity="end|center|..." 在 compose 中,我们可以在这里使用 Column 的 HorizontalAlignment 和 VerticalArrangement 参数以及 Row 的 verticalAlignment 和 HorizontalArrangement 参数。
Column(
verticalArrangement = Arrangement.Bottom,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxSize()
)
注意:您可以使用Modifier.fillMaxSize() 设置任何组合高度和宽度match_parent,或者您可以使用fillMaxHeight() 仅设置高度,使用fillMaxWidth() 设置宽度。
Row(
horizontalArrangement = Arrangement.Center,
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.fillMaxSize()
)
结果…。
您还可以使用horizontalAlignment 并顺便说一下行与列相同,但您现在是水平的:)。
3. android:layout_gravity
如果你想让一个子级覆盖它的父级重力,你可以使用 Row 的 align 和 Column 的 align 修饰符来完成这项工作。 例如:
Column(
modifier = Modifier.padding(16.dp).fillMaxSize(),
horizontalAlignment = Alignment.Start
) {
RedBox() // this will be like parent Alignment.Start
Spacer(modifier = Modifier.height(16.dp))
//this will override it's parent to CenterHorizontally
OrangeBox(Modifier.align(Alignment.CenterHorizontally)) Spacer(modifier = Modifier.height(16.dp))
GreenBox()
}
4. 安卓:重量
为了创建一个布局,其中每个孩子使用相同数量的空间或在屏幕上按特定比例划分空间,我们将属性设置为行的填充宽度和列的高度。 例如:
Row(
modifier = Modifier
.padding(16.dp)
.fillMaxWidth()
) {
Text(text = "Cash", modifier = Modifier.weight(1f).background(Color.Cyan))
Spacer(modifier = Modifier.width(16.dp))
Text(text = "Credit Card", modifier = Modifier.weight(1f).background(Color.Blue))
}
我知道,用户界面看起来很糟糕,但你明白了……
注意:您可以给它任何您想要为 ex 创建动态布局的比例:一个为 2f,另一个为 1f。
另一个注意事项:Wight 函数具有填充参数 weight(..., fill = true) ,
fill = true 是默认值,它在可用空间中的作用类似于 match_parent
fill = false 将像可用空间中的 wrap_content 一样。
5. 展开一个孩子
如果您想让孩子填满所有可用空间怎么办? 例如:
这是你如何做到的……
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.fillMaxWidth()
) {
LeftChild(...)
Spacer(...)
// The expanded child goes here
MiddleChild(
modifier = Modifier
.weight(1f) // here is the magic
.wrapContentWidth(Alignment.Start), // here is the magic
)
Spacer(...)
RightChild(...)
}
在这里 MiddleChild 将占用所有可用空间并将 RightChild 推到边缘......
注意:您可以对列执行相同的操作。
最后给你一个小提示:默认情况下,行/列不可滚动,但我们可以通过添加修饰符轻松使它们可滚动……
Row(modifier = Modifier.horizontalScroll(rememberScrollState()))
/Column(modifier = Modifier.verticalScroll(rememberScrollState()))
相关推荐
- 高一高二第一次月考认真作答(高二第一次月考的重要性)
-
正在进行高一、高二第一次月考,同学们正在认真完成化学试卷,研究考纲,探究考点,夯实基础,迎战高考!
- 山清水秀,盛世今朝(山清水秀出处)
-
万千星河,神州妖娆!山清水秀,盛世今朝!龙腾虎跃,锦绣前程!千里婵娟,祝福永远!
- 我校二模成绩已新鲜出炉(二模考试成绩)
-
充电加油备战高考,积极努力再拼一搏...
- Argon Design向瑞萨电子有限公司提供Argon Streams VP9许可证
-
英国剑桥--(美国商业资讯)--领先的先进视频验证解决方案提供商ArgonDesignLtd已与日本半导体公司瑞萨电子有限公司(RenesasElectronicsCorporation)签署...
- 高考倒计时75天(高考倒计时75天励志语)
-
今天是2022年3月24日星期四,距离2022年高考还有75天时间对于十八岁的高三学子来说,有些事情的确会影响你们的一生,但是没有一件事能决定你们的一生!努力的意义,就是:以后的日子里,放眼望去,全...
- 期中考试正在进行(期中考试在即)
-
转眼即瞬,期中考试已到,紧张忙碌的两个月学习,检验的时刻到了。让我们拿出信心和勇气,来挑战自我。面对考验,我们该做的就是沉着,冷静。让知识来一次次洗礼我们的灵魂,让失败和成功迎接一次次的成长。你们可以...
- 不要浪费了你NAS上的HDMI接口!详解华硕NAS上HDMI接口的妙用
-
不要浪费了你NAS上的HDMI接口!详解华硕NAS上HDMI接口的妙用之前我在本站分享我使用的华硕(ASUS)AS6704T...
- Java通过Kafka Streams库来实现数据流处理
-
#暑期创作大赛#...
- From abandoned mines to limpid streams waters: how banks profit from EOD
-
ByZENGYanglinInthecurrentpursuitofthe“dualcarbon”target(carbonpeakingandcarbonneutra...
- SPSS与Streams的集成实现实时预测
-
SPSSModeler是一个数据挖掘工作台,提供了一个可了解数据并生成预测模型的最先进的环境。Streams提供了一个可伸缩的高性能环境,对不断变化的数据进行实时分析,这些数据中包括传统结构的数据...
- Kafka Streams, 我还会再使用它吗?
-
DeeptiMittal4分钟阅读...
- 大数据Hadoop之——Kafka Streams原理介绍与简单应用示例
-
一、KafkaStreams概述官网文档:https://kafka.apache.org/32/documentation/streams/...
- Android上的TCP今天开始向用户推出,并将在下个月向所有用户提供
-
据extends网3月15日报道,Firefox今天宣布,其保护用户免受跟踪器攻击的全面cookie保护(TCP)功能现已在Android上可用。该功能默认启动模式,这样,跟踪器将无法收集有关用户的浏...
- Linux curl命令(linux curl命令安装)
-
Linuxcurl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、H...
- go语言http服务入门详解(go语言http服务器)
-
当你在浏览器中输入URL时,实际上是在发送一个对Web页面的请求。该请求被发送到服务器。服务器的工作是获取适当的页面并将其作为响应发送回浏览器。在Web的早期,服务器通常读取服务器硬盘上HTML文件的...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
推荐7个模板代码和其他游戏源码下载的网址
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
-
- 高一高二第一次月考认真作答(高二第一次月考的重要性)
- 山清水秀,盛世今朝(山清水秀出处)
- 我校二模成绩已新鲜出炉(二模考试成绩)
- Argon Design向瑞萨电子有限公司提供Argon Streams VP9许可证
- 高考倒计时75天(高考倒计时75天励志语)
- 期中考试正在进行(期中考试在即)
- 不要浪费了你NAS上的HDMI接口!详解华硕NAS上HDMI接口的妙用
- Java通过Kafka Streams库来实现数据流处理
- From abandoned mines to limpid streams waters: how banks profit from EOD
- SPSS与Streams的集成实现实时预测
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)