Android Compose 控件基本属性

 本文的代码由上一篇文章的Demo进一步书写完成,

传送门:Android Compose的基本使用-CSDN博客

_____________________________________________________________________________

 以下代码分别列举了控件的:

内边距,外边距,内容居中,渐变自定义边框,宽度权重,string资源引用等定义方式

MainActivity:

open class MainActivity : ComponentActivity() {private val TAG = "MainActivity"override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent {Column {    //竖向布局var newText by remember { mutableStateOf("默认") }NewText(newText, modifier = Modifier.background(Color.Green).padding(20.dp))var fieldText by remember { mutableStateOf("") }NewTextField(fieldText, "随便输入点什么吧") {//输入监听事件Log.e(TAG, "输入内容:$it")fieldText = itnewText = it}NewButton("清空按钮") {//点击事件newText = ""fieldText = ""}NewButton("跳转") {//点击事件startActivity(Intent(this@MainActivity, NewActivity::class.java))}}}}@Composablefun NewText(name: String, modifier: Modifier = Modifier) {Text(text = name,modifier = modifier,textAlign = TextAlign.Center, //文字居中style = TextStyle(//文本的风格配置fontFamily = FontFamily.Default, //文本的字体fontSize = 15.sp,//字体大小fontWeight = FontWeight.Bold,//文本的粗细fontStyle = FontStyle.Italic,//斜体color = Color.Red,//文本颜色textDecoration = TextDecoration.Underline//删除线))}@OptIn(ExperimentalMaterial3Api::class)@Composablefun NewTextField(text: String, hint: String, onValueChange: (String) -> Unit) {TextField(value = text,placeholder = {Text(text = hint)},onValueChange = {// 另一种事件赋值的写法,这种写法可以在这里增加额外代码onValueChange(it)})}@Composablefun NewButton(name: String, onClick: () -> Unit) {Button(onClick = onClick,modifier = Modifier.padding(10.dp)) {Text(text = name)}}}

NewActivity:

class NewActivity : MainActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val colors = listOf(Color(0xFF005599), Color(0xFF3FFFED))setContent {Column {    //竖向布局var newText by remember { mutableStateOf("默认-NewActivity") }NewText(newText, modifier = Modifier.background(Color(0xFFffff99)).padding(30.dp).fillMaxWidth(1f).border(//设置渐变边框   粗细与边框渐变色border = BorderStroke(1.dp, Brush.linearGradient(colors)),shape = RoundedCornerShape(0.dp, 0.dp, 5.dp, 5.dp), //圆角形状))NewText(newText, modifier = Modifier.padding(20.dp).background(Color(0xFFff9999)).padding(30.dp).fillMaxWidth(0.4f).border(  //设置渐变边框border = BorderStroke(1.dp,Brush.linearGradient(colors)), //设置边框粗细与边框渐变色shape = CutCornerShape(5.dp, 5.dp, 5.dp, 5.dp) //切角矩形形状))Text(text = stringResource(id = R.string.app_name))NewButton("返回") {//点击事件finish()}}}}}

NewText和NewButton等方法均为工厂模式中的生产方法.

后续可进一步封装到具体的工厂类,可以生产众多页面共同样式的View.

这体现了Compose其中一个重要的优点:控件全属性复用,完美克隆

_______________________________________________________________________

深海也是刚开始试着用Compose,就写点基础的供小白参考.
如果您感觉文章有用的话麻烦点个赞吧.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1558671.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

JVM 内存模型与垃圾回收过程详解

JVM 内存模型与垃圾回收过程详解 文章目录 JVM 内存模型与垃圾回收过程详解1. JVM内存分区1.1 具体分区1.2 JVM内存分区的必要性 2. 垃圾回收2.1 CMS垃圾回收器2.2 G1垃圾回收器2.3 JVM垃圾回收从新生代到老年代 1. JVM内存分区 1.1 具体分区 Java虚拟机(JVM&#…

Ubuntu 18.04安装storcli查看阵列信息

rootCeph03:/opt/MegaRAID/storcli# cat /etc/issue Ubuntu 18.04.5 LTS \n \l 准备好storcli的安装包 解压 解压之后可以看到 根据系统版本选择 把storcli_1.18.11_all.deb包传到服务器 使用命令dpkg -I storcli_1.18.11_all.deb ./storcli64 show ./storcli64 /c1 show …

Nuxt3哔哩哔哩移动端项目实战

Nuxt3 - 哔哩哔哩 - 项目实战 简介 Nuxt 框架提供了一种基于 Node.js 的服务端渲染方案 SSR(Server Side Rendering),可以让 Vue 应用在服务器端进行渲染,从而提高页面的加载速度和 SEO。 项目预览 在线预览 https://bilibil…

室内人行与导航系统有哪些多样化的功能?

在现代化建筑的迷宫中,室内人行与导航系统如同一位无形的向导,引领我们穿梭于复杂的空间之中,极大地提升了人们在室内环境中的便捷性和安全性。这一技术领域的飞速发展,不仅体现在定位精度的提升上,更在于其多样化的功…

基于卷积神经网络的书法字体识别系统,resnet50,mobilenet模型【pytorch框架+python】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示: 基于卷积神经网络的书法字体识别系统,resnet50,mobilenet【pytorch框架,python,tkinter】_哔哩哔哩_bilibili (一)简介 基于卷…

台球助教预约小程序源码开发:技术解析与示例代码

随着数字化时代的到来,信息技术与体育运动的融合日益紧密。台球作为一项深受大众喜爱的运动,其教学训练领域也迎来了技术创新的浪潮。本文将探讨台球助教预约小程序的开发过程,从技术选型、功能设计到示例代码展示renxb001,全面解…

ComfyUI | 高清出图+艺术字+文字直出工作流(附工作流)

今天给大家带来一个可以直接打字的工作流,非常适合设计师使用!拒接二次修改!轻松上手设计,无需Photoshop技能,直接输入文字即可,操作极为简便,极大提升工作效率。 以国庆海报为例 庆祝75周年国…

搭建Serverless社交媒体分析平台,Dataxet运维成本降低50%

社交媒体平台发展如火如荼,据相关机构统计,2024年全球社交媒体活跃用户已占全球人口总数约62.5%。亚洲知名智能媒体公司Dataxet意识到社交媒体数据分析潜在商业价值,即推出全新的社交媒体分析平台DTX360,用于提供媒体监测、社交网…

Canvas:AI协作的新维度

在人工智能的浪潮中,OpenAI的最新力作Canvas,不仅是一款新工具,它标志着人工智能协作方式的一次革命性飞跃。Canvas为写作和编程提供了一个全新的交互界面,让用户能够与ChatGPT进行更紧密、更直观的协作。 ​​​​​​​ Canvas的…

危房安全监测系统解决方案

一、危房产生原因 1、地基因滑移,或因承载力严重不足,或因其他特殊地质原因,导致不均匀沉降引起结构明显倾科、位移、裂缝、扭曲等,并有继续发展的趋势。 2、地基因毗邻建筑增大荷载,或因自身局部加层增大荷载,或因其他人为因素,导致不均匀沉降,引起结构明显倾料、位移、裂缝…

linux安装Go ImageMagick插件

ImageMagick安装 在程序中需要对图片转化时需要使用到gopkg.in/gographics/imagick.v2/imagick库,但是这个库需要在本地安装ImageMagick插件。 有些机器在软件库是有的,可以直接下载安装,没有的话推荐源码安装。 ImageMagick中文站 ImageM…

Spring Boot学习资源库:Java开发者的新篇章

2 相关技术简介 2.1Java技术 Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译,任…

张驰咨询:企业管理难题?精益六西格玛培训公司有‘秘籍’!

在当今这个快速变化、竞争激烈的市场环境中,企业要想持续保持竞争优势,就必须不断追求效率与质量的双重提升。而精益六西格玛作为一种集精益生产与六西格玛管理于一体的先进管理理念和工具,正成为越来越多企业转型升级的首选。在这样的背景下…

Springboot3+druid+jasypt+application.yml配置文件数据库密码加密技术

说明 开发环境我们经常把数据库密码直接明文暴露在配置文件中,但是在生产环境,出于安全考虑,必须对数据库密码进行加密。 Jasypt是一个简单易用的Java加密工具库。Jasypt支持多种加密算法,如AES、SHA512、AES_256等,以适应不同的安全需求,可以轻松将加密技术应用于配置…

JavaScript 入门基础 第1章

第一部分:入门篇 第1章:JavaScript 基础 JavaScript 是什么? JavaScript 是一种广泛使用的脚本语言,主要用于Web开发,为网页添加交互功能。它是一种解释型语言,可以在客户端(浏览器&#xff0…

重学SpringBoot3-集成Redis(九)之共享Session

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(九)之共享Session 1. 为什么需要 Session 共享2. Spring Session 和 Redis 的集成2.1. 引入依赖2.2. 配置 Redis 连接…

猿人学— 第一届第1题(解题思路附源码)

猿人学 — 第一届第1题(解题思路附源码) F12进入开发者工具—> 发现停止在debugger处 —> 右键点击Never pause here后下一步 翻页,抓包后发现请求携带page和m两个参数,page应该就是页数,m则需要逆向 依次查…

《深度学习》循环神经网络RNN 结构及原理解析

目录 一、关于RNN 1、传统神经网络存在的问题 2、什么是循环神经网络 3、RNN特点 二、RNN基本结构 1、RNN基本结构 2、推导方式 注意: 3、循环的由来 4、RNN的局限性 一、关于RNN 1、传统神经网络存在的问题 无法训练出具有顺序的数据,模型搭…

【LeetCode】每日一题 2024_10_9 找到按位或最接近 K 的子数组(LogTrick、位运算)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动! 题目:找到按位或最接近 K 的子数组 代码与解题思路 今天是 2100 的题目,难度略高,不在我的能力范围,推荐题解:两种方法:LogTrick/滑…

大模型转型指南:现在开始学习还来得及吗?非常详细收藏我这一篇就够了

大模型学习路线,从基础入门到项目实战! 第一阶段:AI大模型时代 理解大模型大模型提示工程 第二阶段:AI大模型API应用开发工程 3. 理解Function Calling 4. RAG与Embedding 5. 向量数据库 6. OpenAI GPTs与Assistant API 7. 实战…