当前位置: 首页 > wzjs >正文

建立网站的步骤网站搜索算法

建立网站的步骤,网站搜索算法,wordpress 随机名言插件,互联网十创业项目文章目录 1、kotlin版本修改问题修改2、前言:参考知识点: 3、文字超链接的实现新版实现(Text AnnotatedString实现效果) 4、文字强调效果( Material3 的透明度方案)material依赖实现文字强调效果&#xff…

文章目录

  • 1、kotlin版本修改问题修改
  • 2、前言:
    • 参考知识点:
  • 3、文字超链接的实现
    • 新版实现(Text + AnnotatedString实现效果)
  • 4、文字强调效果( Material3 的透明度方案)
    • material依赖实现文字强调效果:
  • 5、委托属性

1、kotlin版本修改问题修改

修改kotlin的版本:从1.6.0到2.1.0后出现问题

问题:
在查看Compose的preView时出现问题:

Starting in Kotlin 2.0, the Compose Compiler Gradle plugin is required
when compose is enabled. See the following link for more information

问题原因:
Kotlin 2.0 的兼容性变更:从 Kotlin 2.0 起,Compose 编译器不再内置于 Kotlin Gradle 插件中,必须独立声明。
未正确配置插件:项目可能缺少 kotlin(“plugin.compose”) 或版本不匹配。
问题解决:
在build.gradle.kts(:app)和项目集的build.gradle中添加plugin插件,注意版本和kotlin的版本一致
compose-android = {id = “org.jetbrains.kotlin.plugin.compose”,version.ref = “kotlin”}

//设定内容控制在顶部状态栏以下
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
}
Text文字控件的使用

2、前言:

之前学习了Compose的布局,对XML布局中常见的布局有了一定的了解,接下来了解具体的控件,学习Text组件的使用。同样的是,学习compose博物馆中总结,在既有的基础上进行学习,将不懂的知识点进行梳理,或者版本升级后的修改进行记录。

参考知识点:

Text布局组件
对于Text的基础使用可以访问上述链接进行学习

3、文字超链接的实现

文字超链接的使用(旧版ClickableText实现)

新版实现(Text + AnnotatedString实现效果)

因为 getStringAnnotations API在不同版本中效果不同,当Compose 版本 ≥ 1.2.0时,使用Text + AnnotatedString实现效果,版本低于1.2.0的时候使用ClickableText进行实现。

@Composable
fun ClickableTextWithAnnotations() {val context = LocalContext.current// 步骤1: 构建带有注解的字符串val annotatedText = buildAnnotatedString {append("我已阅读并同意")// 标记可点击的起始位置pushStringAnnotation(tag = "agreement", // 自定义标签(用于识别点击区域)annotation = "https://example.com/terms" // 携带的数据)withStyle(style = SpanStyle(color = Color.Blue,textDecoration = TextDecoration.Underline)) {append("《用户协议》")}pop() // 结束标记append("和")pushStringAnnotation(tag = "privacy", annotation = "https://example.com/privacy")withStyle(style = SpanStyle(color = Color.Blue,textDecoration = TextDecoration.Underline)) {append("《隐私政策》")}pop()}// 步骤2: 获取文本布局信息val layoutResult = remember { mutableStateOf<TextLayoutResult?>(null) }// 步骤3: 组合 Text 和点击检测Text(text = annotatedText,modifier = Modifier.fillMaxWidth().pointerInput(Unit) {detectTapGestures { offset ->layoutResult.value?.let { layout ->// 获取点击位置的字符索引val position = layout.getOffsetForPosition(offset)// 检查是否点击了注解区域annotatedText.getStringAnnotations(start = position,end = position).firstOrNull()?.let { annotation ->when (annotation.tag) {"agreement" -> {// 处理用户协议点击Toast.makeText(context,"打开协议: ${annotation.item}",Toast.LENGTH_SHORT).show()}"privacy" -> {// 处理隐私政策点击Toast.makeText(context,"打开隐私: ${annotation.item}",Toast.LENGTH_SHORT).show()}}}}}},onTextLayout = { layoutResult.value = it })
}

4、文字强调效果( Material3 的透明度方案)

material依赖实现文字强调效果:

// 将内部 Text 组件的 alpha 强调程度设置为高
// 注意: MaterialTheme 已经默认将强调程度设置为 high
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.high) {Text("这里是high强调效果")
}
// 将内部 Text 组件的 alpha 强调程度设置为中
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) {Text("这里是medium强调效果")
}
// 将内部 Text 组件的 alpha 强调程度设置为禁用
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.disabled) {Text("这里是禁用后的效果")
}

material的依赖:

implementation(libs.androidx.compose.material)//libs.versions.toml中
composeMaterial = "1.4.3"
androidx-compose-material = { group = "androidx.compose.material", name = "material", version.ref = "composeMaterial" }

material3的依赖:

implementation(libs.androidx.material3)//libs.versions.toml中androidx-material3 = { group = "androidx.compose.material3", name = "material3" }

注意:
使用material2和material同时依赖时,api会产生冲突,上述实现不起作用,不能同时依赖material和material3.

material依赖实现文字强调效果:

 Text(text = "禁用文本",color = MaterialTheme.colorScheme.onSurface.copy(alpha = 1.0f))

5、委托属性

添加导入包

// 必须导入的扩展函数(解决委托属性问题)

import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
var text by remember{ mutableStateOf("")}
//取值、赋值
Text( text= text)

否则使用的是

var text = remember{ mutableStateOf("")}
//取值
Text( text= text.getValue)//赋值
text.setValue()
http://www.dtcms.com/wzjs/789662.html

相关文章:

  • php网站源码建设教程农林网站建设
  • python做网站原理wordpress主题lightsns
  • 太仓新网站优化仿视频网站开发
  • 做网站能收多少广告费济南网站建设飞鸟
  • 商城网站建设怎么建设网站开发技术岗位职责
  • 网站开发所需要的的环境重庆网站建设制作设计公司
  • 设置网站标签织梦 图片网站源码
  • 北京免备案网站建设项目经理资格证
  • 自己做网站服务器的备案方法关键词整站优化公司
  • 企业网站建设可行分析南宁网站建设gxskm
  • 重庆长寿网站设计公司哪家好太原顶呱呱做网站地址电话
  • 罗湖外贸网站建设上海设计公司招聘
  • 北京网络网站推广国外网站做网上生意哪个好
  • 响应式网站项目如何下载ppt免费模板
  • 中式设计网站推荐怎样优化网站自然排名
  • 弄一个电影网站怎么做惠州服务类营销方案
  • 整站关键词快速排名手机qq网页版网站
  • 学校网站建设代码东莞中高风险地区
  • 网站做系统叫什么名字海南省建设网站
  • 汕头网站设计电话渠道策略的四种方式
  • 衡阳有线宽带网站网站源码带手机版
  • 网站建设流程包括哪些环节网站交互主要做什么的
  • 驻马店住房和城乡建设部网站360网站卫士代备案流程
  • 宁夏政务网站建设标准wordpress页面透明度
  • 上海工程建设信息网站宿迁房产网58同城网二手房
  • 常州辉煌网络网站建设公众号开发渠道二维码怎么做
  • 岳阳市建设局网站wordpress开发者模式
  • 早教网站建设方案外贸最热门的十大产品
  • 安徽湖滨建设集团网站免费培训网站
  • 宁波育才建设教育集团网站赣州新闻最新消息