部分彩色文本并使其在 Jetpack Compose 中可点击 [重复]

2024-04-20

对于 XML 中声明的视图,我们可以使用SpannableStringBuilder正如这里提到的https://stackoverflow.com/a/4897412/9715339 https://stackoverflow.com/a/4897412/9715339为该部分字符串着色。

但是用JetPack composeText我无法仅用一个来实现相同的目标Text.

我想要这样的东西。

正如你所看到的,只有“注册”文本有不同的颜色,而且我也想这样做可点击的.

这就是我的文本代码目前的样子

Text(text = "Don't have an account? Sign Up",
                        modifier = Modifier.align(Alignment.BottomCenter),
                        style = MaterialTheme.typography.h6,
                        color = MaterialTheme.colors.secondary,
                    )

这在jetpack compose中可能吗?


因此,在@CommonsWare 的评论和撰写文档 https://developer.android.com/jetpack/compose/text/user-interactions#click-with-annotation,我设法使用创建相同的AnnotatedString & ClickableText。注释是内嵌添加的,以便任何人都可以理解。

@Composable
fun AnnotatedClickableText() {
    val annotatedText = buildAnnotatedString {
        //append your initial text
        withStyle(
            style = SpanStyle(
                color = Color.Gray,
            )
        ) {
            append("Don't have an account? ")

        }

        //Start of the pushing annotation which you want to color and make them clickable later
        pushStringAnnotation(
            tag = "SignUp",// provide tag which will then be provided when you click the text
            annotation = "SignUp"
        )
        //add text with your different color/style
        withStyle(
            style = SpanStyle(
                color = Color.Red,
            )
        ) {
            append("Sign Up")
        }
        // when pop is called it means the end of annotation with current tag
        pop()
    }

    ClickableText(
        text = annotatedText,
        onClick = { offset ->
            annotatedText.getStringAnnotations(
                tag = "SignUp",// tag which you used in the buildAnnotatedString
                start = offset,
                end = offset
            )[0].let { annotation ->
                //do your stuff when it gets clicked
                Log.d("Clicked", annotation.item)
            }
        }
    )
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

部分彩色文本并使其在 Jetpack Compose 中可点击 [重复] 的相关文章

  • 将图像从 Android 上传到 GCS

    我正在尝试将图像从 Android 直接上传到 Google 云存储 但API似乎不起作用 他们有一些与 App 引擎相关的 Java 示例 我没有看到任何被证明可以在 Android 上运行的示例 在 Android 上 我尝试使用 js
  • OTP(令牌)应自动从消息中读取

    我正在开发一个 Android 应用程序 其中服务器发送 OTP 用户需要在应用程序中输入此 OTP 才能注册我的应用程序 我想要的是 我的应用程序应该能够自动读取服务器发送的 OTP 我怎样才能实现这个目标 在这方面的任何帮助或指导将不胜
  • 如何引导用户为我的应用程序启用辅助功能服务

    我知道不可能以编程方式启用应用程序的辅助功能服务 因此我想将用户引导至此屏幕 System settings gt Accessibility gt app name gt enable disable screen 那可能吗 您可以将它们
  • audioTrack play() 只播放一次

    第一次使用Android的AudioTrack 我创建了一个 AndroidAudioDevice 类 我用这个构造函数初始化它 public AndroidAudioDevice constructor Log i Audio const
  • Android中如何制作传统蒙古文ListView

    如何在 Android 应用程序中为垂直蒙古文制作水平滚动的 ListView 背景 Android 对世界上许多语言都有相当好的支持 甚至是阿拉伯语和希伯来语等 RTL 语言 但是 没有内置对自上而下语言的支持 例如传统蒙古语 http
  • 如何减少 MediaCodec H264 编码器延迟

    我正在尝试使用 Android6 0 的 MediaCodec 将 h264 实时低延迟编码为流 编码器大约有 6 帧延迟 我想知道如何减少 代码来自屏幕记录 cpp https android googlesource com platf
  • Android SDK 中缺少 Gradle(使用 cordova + ionic)

    是的 我搜索了这个 但没有搜索到任何内容 只是有关 ANDROID HOME 路径的信息 但就我而言 我认为这不是真正的问题 当我尝试做的时候ionic build android我收到这个错误 错误 在 android sdk 中找不到
  • Android - GC 滞后于列表视图滚动“更大”的图像

    在列表视图中 我想在列表条目上绘制一个图像 这 20 张图像必须缩放以填充垂直模式的宽度 手机分辨率为 480 x 800 像素 SGS2 图像分辨率为 400x400 大小约为 100KB 我已将图像放在可绘制文件夹中 当我滚动列表时 它
  • Android Facebook SDK - 无法接收访问令牌

    我正在尝试在我的 Android 应用程序中使用 Facebook SDK 这是片段 Facebook myFacebook new Facebook 123456789012345 myFacebook authorize LogInSc
  • 离子和电容器 - Android 启动画面响应能力

    Context 这与闪屏图像响应能力有关 根据我的研究 它之所以发生是因为缺少文档电容器文档 启动画面 https capacitorjs com docs apis splash screen Problem 当实现电容器的闪屏插件时 问
  • RecyclerView OnClick 位置

    我正在尝试获取我的点击项目的位置RecyclerView 然而 这有点奇怪 只让我在点击时记录位置 而不让我做一个Toast的位置 看这里 public class MainAdapter extends RecyclerView Adap
  • Proguard错误android,无法访问jar文件

    这是我第一次使用 progurad 在导出签名的 apk 时出现以下错误 错误 无法访问 jarfile lib proguard jar 我取消注释了 proguard config 行 To enable ProGuard to shr
  • Android:RunOnUiThread 与 AsyncTask

    我相信 Google 建议开发人员使用 AsyncTask 但是 我想知道它与使用 new Thread 然后调用 RunOnUiThread 在性能和内存效率方面有何不同 使用 RunOnUithread 的示例 some code 1
  • 如何将 logcat 输出复制到剪贴板?

    我正在 Eclipse 中开发 Android 应用程序 如何将 logcat 消息发送到剪贴板 Select the message and press ctrl c You can save it in a text file usin
  • 错误:升级到 lombok 1.16.2 后包 javax.annotation 不存在

    我的 android 项目使用 lombok 1 16 0 构建得很好 但是一旦我将依赖项更改为目标 1 16 2 我在使用 lombok 注释的任何地方都会收到以下错误 Error 20 1 error package javax ann
  • 如果使用推送服务关闭应用程序,应用程序会崩溃:parse.com

    我将清单中的接收器替换为我的
  • onActivityresult 数据为空

    这是我的相机应用程序 我想在其中捕获图像并裁剪它 但它拍照保存在我的 myimage 目录中 但不执行裁剪功能 请我需要帮助 我是这个领域的新人 这是我的相机开源代码 Intent intent new Intent MediaStore
  • Eclipse 中的 Android 框架源码级调试

    Android 框架的 Java 源代码可从 source android com 获取 我可以下载它们并将其提供给 Eclipse 以便在调试时进入框架方法吗 更好的是 有人知道 Eclipse 插件可以根据需要自动从 Android G
  • Android 数组列表如何使用

    所以我有一个标记列表 我需要弄清楚如何处理它们 我已经搜索了几个小时 但没有明确说明如何使用这些信息或如何从列表中获取信息 请解释或分解我的代码并告诉我它到底是如何工作的 这样我就可以在地图上设置标记 这就是我将标记添加到列表中的方法 现在
  • Android 并获取 id 转换为字符串的视图

    在 Android 项目的 Java 代码中 如果您想要视图资源的引用 您可以执行以下操作 View addButton findViewById R id button 0 在上面的 R id button 0 不是一个字符串 是否可以通

随机推荐

  • 检查属性是否用特定注释修饰 - Typescript

    如何确定特定属性是否用特定注释修饰 例如这个类 class A DecoratedWithThis thisProp number 我怎么知道thisProp装饰有DecoratedWithThis 我的用例 我使用另一个文件中的类来生成属
  • Android 指纹原始数据

    Android 的指纹传感器实现是否支持直接访问原始指纹数据 即手指上的实际图案 我并不是指用于解锁设备和付款的存储的安全指纹 而是指在扫描手指时按需获取原始数据 如果没有 为什么不呢 Android API 的作用not允许直接访问原始指
  • 在 Unity 中双向旋转门

    我在 Unity 中创建了一扇打开和关闭的门 我可以通过打电话打开那扇门Interact 现在我想创建一扇始终远离玩家打开的门 就像酒吧的门一样 如果玩家在房间前面 门就会旋转到房间 如果玩家在房间里 门就会旋转出去 目前我创建了一个布尔值
  • Python - AttributeError:“NoneType”对象没有属性“findAll”

    我已经编写了第一段 python 代码来抓取网站 import csv import urllib2 from BeautifulSoup import BeautifulSoup c csv writer open data csv wb
  • 尝试将 span 元素设置为等于 JS 石头剪刀布游戏中的变量值

    我正在编写一个玩石头 剪刀 布的程序 当我编码时 一切都很顺利 直到我添加了 userScore span InnerHTML userScore 线 在测试 win 功能时 我添加了 console log you win 它工作得很好
  • Vue.js 隐藏当前视口之外的项目

    我正在 Vue js 中制作一个电子商务类型的菜单 其中的项目是包含大量功能和图像的 div 当渲染大约 200 个这样的项目时 性能相当不错 但是当添加的数量超过这个数量时 网站的性能开始变得缓慢 如果 Vue 元素位于当前可滚动视图之外
  • 为什么 Scala 程序的编译速度非常慢?

    过去两个月我一直在使用 Scala 我还在一个小应用程序中使用 Play 框架 我观察到 即使对于打印 Hello World 的程序来说 编译也非常慢 为什么这么慢 有什么减少时间的技巧吗 您的情况下编译速度有多快 scalac 的速度受
  • 无法访问 GridView 中的 HyperLinkField 文本

    我有一个 HyperLinkField 定义如下
  • 在 vs 代码编辑器中隐藏代码块行

    我的所有代码上都有这些奇怪的行 它们似乎突出显示了代码块 我该如何关闭它们 我的是1 30版本 Link https ibb co z5Tt6t4 https ibb co z5Tt6t4 所以左边的白线 它们叫什么以及如何将它们关闭 您可
  • 识别不在另一个数据框中的记录

    我有一个像这样的数据框 data1 pd DataFrame a z 0 a y 20 b z 1 columns id1 id2 number data2 pd DataFrame a y 1 a y 1 b z 0 columns id
  • NLog 的线程安全性如何?

    Well 我等了好几天才决定发布这个问题 因为我不知道如何陈述这一点 结果写了一篇很长的详细帖子 不过 我认为此时向社区寻求帮助是有意义的 基本上 我尝试使用 NLog 为数百个线程配置记录器 我认为这会非常简单 但几十秒后我得到了这个异常
  • 埃拉托斯特尼筛法速度比较:Python 与 Julia

    所以我有一个用 Python 和 Julia 编写的 Eratosthenes 函数的小筛子 并且我正在比较运行时间 这是Python代码 import time def get primes n numbers set range n 1
  • 将缺失值 (NA) 替换为空白(空字符串)

    我有一个带有 NA 行的数据框 df data frame c classA NA classB t data frame rep A 5 rep NA 5 rep B 5 rownames df lt c 1 2 3 colnames d
  • 使用 Swift 3 在 Xcode 8 中构建适用于 WatchOS 和 iOS 的嵌入式框架

    我正在将最初用 Swift 1 编写的全 iOS WatchOS 1 应用程序移植到最新的 Xcode 8 WatchOS 3 Swift 3 我的应用程序有一个嵌入式框架 具有一些常用功能 用于编译和运行 watchkit 扩展目标和 i
  • 如何避免每次创建新的 javafx 项目时添加 vm 参数?

    我正在使用 e fx clipse 插件和 scenebuilder 在 STS 4 6 1 中创建 javafx 项目 每次创建新项目时 我都必须在运行配置中添加虚拟机参数 module path home path to javafx
  • Excel 数据透视表“显示为”值列中的差异

    当值显示为父列总数的百分比时 有没有办法让数据透视表自动计算两列之间的差异 现在我需要手动 但表格是动态的 竞争对手的数量可能会有所不同 功能看起来很简单 但在谷歌搜索后找不到它 See example picture below of w
  • 在 iOS 6 中,检查一个人是否登录了社交网络?

    有没有办法检查用户是否确实在操作系统中登录了 facebook 或 twitter 我想这样做的原因是依靠应用程序中的共享 例如使用 facebooks SDK 来共享 而不要求用户再次登录 我实际上认为代码 SLComposeViewCo
  • Apache Spark 警告“在 RowBasedKeyValueBatch 上调用溢出()”的含义

    我正在使用 Apache Spark 本地模式运行 pyspark 2 2 0 作业 并看到以下警告 WARN RowBasedKeyValueBatch Calling spill on RowBasedKeyValueBatch Wil
  • SSIS 包损坏,错误为 0xC00CE504

    我有一个损坏的 SSIS 包 并显示错误消息 由于错误 0xC00CE504 名称以无效字符开头 第 13 行第 2 列 无法加载 XML 当加载包并且文件无法打开或无法正确加载到 XML 文档时会发生这种情况 这可能是由于向 LoadPa
  • 部分彩色文本并使其在 Jetpack Compose 中可点击 [重复]

    这个问题在这里已经有答案了 对于 XML 中声明的视图 我们可以使用SpannableStringBuilder正如这里提到的https stackoverflow com a 4897412 9715339 https stackover