compose 创建button示例

在 Jetpack Compose 中,创建一个按钮(Button)的实例是相对简单的。下面是一个基本的 Button 示例,展示了如何定义一个带有点击事件和文本的按钮:

kotlin
复制
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp

@Composable
fun ButtonExample() {
    // 创建一个按钮
    Button(
        onClick = { /* 点击事件处理逻辑 */ },
        modifier = Modifier
            .fillMaxWidth()
            .padding(16.dp)
    ) {
        // 按钮内部的文本
        Text(
            text = "点击我",
            color = MaterialTheme.colors.onPrimary,
            fontWeight = FontWeight.Bold,
            modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)
        )
    }
}


在这个示例中,Button 组件接受一个 onClick 参数,这是一个 Lambda 表达式,定义了当用户点击按钮时应该执行的操作。在这个例子中,点击事件是空的,你可以在这里添加你自己的逻辑,比如跳转到新的屏幕、更新 UI 状态等。

modifier 参数用于定义按钮的布局属性,比如 fillMaxWidth() 使按钮宽度填充其父容器,padding() 添加了内边距。

Text 组件用于在按钮内部显示文本。你可以设置文本的颜色、字体粗细和其他文本相关的属性。

要在你的应用中使用这个 ButtonExample,你需要在你的 Activity 或 Fragment 的 setContent 方法中调用它,像这样:

kotlin
复制
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.platform.setContent
import androidx.activity.ComponentActivity
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) {
                ButtonExample()
            }
        }
    }
}


在这个 Activity 的例子中,setContent 方法用于设置应用的 UI 内容,这里我们调用了 ButtonExample 函数来显示我们的按钮。CompositionLocalProvider 用于提供 ContentAlpha 的值,这是 Material Design 主题的一部分。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js-文件读取输入

Node.js-文件读取输入 fs模块(操作文件的模块) 读取 fs.readFile(path[, options], callback);[]里面 是可选参数,表示以什么样的编码 格式读取path是路径callback表示读取完成后的回调函数 例子 fs.readFile (‘./files/11.txt…

【手机端测试】adb基础命令

一、什么是adb adb(Android Debug Bridge)是android sdk的一个工具 adb是用来连接安卓手机和PC端的桥梁,要有adb作为二者之间的维系,才能让用户在电脑上对手机进行全面的操作。 Android的初衷是用adb这样的一个工具来协助开发人…

el-submenu is-opened 展开/闭合;el-submenu is-opened保持一个子菜单的展开控制

写了个mes系统目录 点击子菜单展开后&#xff0c;上一级菜单没有默认关闭。主流后台管理系统大部分都是保持一个子菜单关闭状态、 问度娘无果后&#xff0c;查询官网&#xff0c;一个属性搞定。 unique-opened 是否只保持一个子菜单的展开 加在 <el-menu 组件上即可 完整代…

解决Docker镜像中CentOS 8仓库问题

前言&#xff1a; 在yum执行过程中&#xff0c;持续遇到与CentOS 8上的’appstream’仓库元数据检索相关的错误。具体错误消息为&#xff1a;“错误&#xff1a;下载’appstream’仓库元数据失败&#xff1a;无法准备内部镜像列表&#xff1a;镜像列表中没有URL。” 问题分析&…

LeetCode_Java_动态规划系列(1)(题目+思路+代码)

目录 斐波那契类型 746.使用最小花费爬楼梯 矩阵 120. 三角形最小路径和 斐波那契类型 746.使用最小花费爬楼梯 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。…

正则表达式中的特殊字符

以下是一些常见的正则表达式特殊字符及其含义&#xff1a; . &#xff1a;匹配任何单个字符&#xff08;除了换行符&#xff09;。^ &#xff1a;匹配输入字符串的开始位置。在方括号表达式中使用时&#xff0c;表示不接受该字符集合。$ &#xff1a;匹配输入字符串的结束位置…

Leetcode202. 快乐数中为什么一定会循环?

他提示中是2的31次方&#xff1a; 相当于我就当它10个9&#xff0c;那么通过一次变换变成了81*10 810&#xff0c;所以他以后最后的范围也只能在[0,810]之间&#xff0c;810是最大的&#xff0c;然后任意一个数x&#xff0c;通过810次变换都不重复&#xff0c;那么811次变换那…

C#面:switch 表达式可以用什么类型?能用 string 类型吗?

在C# 8.0及更高版本中&#xff0c;switch 表达式可以使用以下类型&#xff1a; 整数类型&#xff08;如 int、long、byte 等&#xff09;。字符类型&#xff08;char&#xff09;。字符串类型&#xff08;string&#xff09;。枚举类型&#xff08;enum&#xff09;。布尔类型…

GIS之深度学习01:检测电脑是否包含英伟达GPU

GPU&#xff08;Graphics processing unit&#xff09;&#xff0c;中文全称图形处理器&#xff0c;我们听说的更多的CPU全称是central processing unit&#xff0c;中央处理器。研究深度学习和神经网络大都离不开GPU&#xff0c;在GPU的加持下&#xff0c;我们可以更快的获得模…

【QT+QGIS跨平台编译】之五十二:【QGIS_CORE跨平台编译】—【qgsexpressionlexer.cpp生成】

文章目录 一、Flex二、生成来源三、构建过程一、Flex Flex (fast lexical analyser generator) 是 Lex 的另一个替代品。它经常和自由软件 Bison 语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C 语言写成。 “flex 是一个生成扫描器的工具,能够识别文本中…

Redis高可用三主三从集群部署(三种方式部署/18个节点的大集群)

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容使用宝塔面板搭建集群规划配置验证 使用docker搭建使用脚本搭建规划防火墙端口配置脚本redis.conf配置文件执行过程 &#x1f4e2;文章总结&#x1f4e5;博主目标 &#x1f50a;博主介绍 &#x1f31f;我是廖志伟&#xff…

c入门第二十五篇: 学生成绩管理系统优化(多线程)

前言 程夏&#xff1a;“你这个系统不好用啊&#xff1f;连上之后没有反应&#xff0c;是不是挂了&#xff1f;” 师弟&#xff1a;“不应该啊&#xff0c;我这边好好的&#xff0c;可以正常操作的。” 程夏&#xff1a;“我这边有问题&#xff0c;大概率还是你系统问题。你…

springboot整合druid及可能遇到的问题

第一步&#xff0c;导入druid的maven依赖 在这里&#xff0c;我们选择导入druid-spring-boot-starter&#xff0c;使用配置文件的形式进行配置&#xff08;不需要再编写配置类&#xff09; <dependency><groupId>com.alibaba</groupId><artifactId>dr…

C语言标准库函数qsort( )——数据排序

大家好&#xff01;我是保护小周ღ&#xff0c;本期为大家带来的是深度解剖C语言标准库函数 qsort()&#xff0c;qsort()函数他可以对任意类型的数据排序&#xff0c;博主会详细解释函数使用方法&#xff0c;以及使用快速排序的左右指针法模拟实现函数功能&#xff0c;这样的排…

算法练习第七天|454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

hash表【数组、map】以及双指针的运用 454.四数相加II public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {//nums1,nums2的和作为key&#xff0c;出现次数记位valueMap<Integer,Integer> map new HashMap<Integer,Integer>();for(i…

IT廉连看——C语言——分支语句

IT廉连看—分支语句 一、什么是语句 C语句可分为以下五类&#xff1a; 表达式语句 函数调用语句 控制语句 复合语句 空语句 本周后面介绍的是控制语句。 控制语句用于控制程序的执行流程&#xff0c;以实现程序的各种结构方式&#xff0c;它们由特定的语句定义符组成&…

Delphi 报错 Type androidx.collection.ArraySet is defined multiple times

Delphi 11 建立一个新的 Multi-Device Application 编译成app的时候报错 报错信息 [PAClient Error] Error: E7688 Unable to execute "E:\Program\Java\jdk1.8.0_301\bin\java.exe" -cp "e:\program\embarcadero\studio\22.0\bin\Android\r8-3.3.28.jar"…

FPGA_SD卡读写

一 SD卡 SD卡&#xff0c;安全数字卡&#xff0c;体积小&#xff0c;容量大&#xff0c;存储速度块&#xff0c;支持热插拔。 二 SD卡存储容量 SD卡类型协议规范容量等级SDSCSD1.0上限至2GBSDHCSD2.02GB至32GBSDXCSD3.032GB至2TB 三 SD卡速度等级 标志串列数据写入速度UHS…

MWC 2024丨美格智能发布全新5G-A模组及FWA解决方案,将5.5G带入现实

2月26日&#xff0c;在MWC 2024世界移动通信大会上&#xff0c;美格智能正式宣布推出5G-A模组SRM817WE以及全新的5G-A FWA解决方案&#xff0c;包含5G-A CPE解决方案SRT858M、5G-A MiFi解决方案SRT878H和5G-A ODU解决方案SRT853MX&#xff0c;旨在进一步提升网络性能&#xff0…

跟着cherno手搓游戏引擎【25】封装2DRenderer,封装shader传参,自定义Texture

封装2DRenderer&#xff1a; Renderer.h: #include"ytpch.h" #include"Renderer.h" #include <Platform/OpenGL/OpenGLShader.h> #include"Renderer2D.h" namespace YOTO {Renderer::SceneData* Renderer::m_SceneData new Renderer::S…