做方案还找不到素材 这里有最全的设计网站优化网站seo策略
做方案还找不到素材 这里有最全的设计网站,优化网站seo策略,wordpress国际化,某班级网站建设方案论文文章目录前言一、Text介绍二、使用1.常用使用方式2.相关参数设置3.不同需求的功能实现多语言下的设置与占位符使用通过风格统一管理不同的Text显示文字点击功能文字超链接文字复制功能前言
本文用来介绍有关TextView文本的Compose中使用形式#xff0c;主要介绍各种场景下的使…文章目录前言一、Text介绍二、使用1.常用使用方式2.相关参数设置3.不同需求的功能实现多语言下的设置与占位符使用通过风格统一管理不同的Text显示文字点击功能文字超链接文字复制功能前言本文用来介绍有关TextView文本的Compose中使用形式主要介绍各种场景下的使用方式与本身的属性设置等同时该文章也会长期更新添加或更换新的api,以及我发现的新的使用方式请各位务必收藏可以随时翻阅。官方中文文档的地址(需要科学上网)https://developer.android.com/develop/ui/compose/documentation?hlzh-cn学习Compose的网站参考(部分内容可能过时)https://jetpackcompose.cn/docs/一、Text介绍Text是Compose中用来显示文本内容的UI,等同于TextView相关属性也很雷同但是点击事件等设置有所不同以及使用方式也有所变化。二、使用1.常用使用方式ComposablefunTextComposeSample(){//5种不同的用法/** * 直接赋予内容 */Text(这是预览界面的内容!)/** * 结合资源使用推荐 */Text(stringResource(R.string.contents))}2.相关参数设置Text的属性详解Text(text文本具体内容,colorColor.Red,//颜色fontSize20.sp,//字号fontStyleFontStyle.Italic,//样式可选Normal普通或Italic斜体fontWeightFontWeight.W100,//粗细fontFamilyFontFamily.Serif,//字体letterSpacing12.sp,//文字的间距// textDecoration TextDecoration.None, //装饰 Underline下划线 LineThrough删除线 None无textDecorationTextDecoration.combine(//多种装饰合并listOf(//下划线删除线TextDecoration.Underline,TextDecoration.LineThrough)),textAlignTextAlign.Center,//相对于父容器的文本对齐方式设置Modifier.fillMaxWidth()或者父容器不是自适应才能看到效果lineHeight30.sp,//行高maxLines2,//显示行数极值超过部分会被截断overflowTextOverflow.Ellipsis,//超出部分显示省略号Clip直接截断显示 Visible强制完整显示softWraptrue,//是否自动换行默认true,false时会单行显示并可能溢出modifierModifier//修饰符用于控制尺寸、边距、对齐等布局行为.padding(10.dp)//内边距.background(Color.Yellow)//背景.width(120.dp)//宽度.height(120.dp),//长度)Text中设置style的属性详解//样式的设置 可在data类中定义val BodyNormal TextStyle()可将不同样式赋值给全项目特定控件来实现复用并统一风格Text(text文本具体内容,styleTextStyle(//设置样式可以设置统一的风格colorColor.Blue,//颜色fontSize20.sp,//字号fontWeightFontWeight.Bold,//粗体fontStyleFontStyle.Italic,//字体textDecorationTextDecoration.Underline,// 下划线fontFamilyFontFamily.Serif,// 字体家族letterSpacing2.sp,// 字间距lineHeight30.sp// 行高))3.不同需求的功能实现多语言下的设置与占位符使用/** * 用于多语言切换与占位符使用 * 注需在strings.xml 中设置资源 * string namecontents_language这是多语种适配与占位符设置姓名%1$s年龄%2$d/string */Text(textstringResource(idR.string.contents_language,张三,//替换 %1$s6//替换 %2$d))通过风格统一管理不同的Text显示通常有两种方式一种是使用自带的MaterialThem中的Medium、Small、Large三种不同的预设对其设置为统一的诸如标题、正文等格式一种是通过自定义的方式进行统一设置。官方Text的文档https://developer.android.com/develop/ui/compose/text/user-interactions?hlzh-cn//默认的统一风格Text(text自带的标题的样式,styleMaterialTheme.typography.headlineMedium)Text(text自带的正文的样式,styleMaterialTheme.typography.bodyMedium)//使用自定义风格管理// 1. 主题样式定义ui/theme/TextStyles.ktdataclassAppTextStyles(valtitle:TextStyle,valcontent:TextStyle,valhint:TextStyle)valLightTextStylesAppTextStyles(titleTextStyle(fontSize18.sp,fontWeightFontWeight.SemiBold,colorColor.Black,lineHeight26.sp),contentTextStyle(fontSize16.sp,colorColor.Gray,lineHeight24.sp),hintTextStyle(fontSize14.sp,colorColor.LightGray,lineHeight20.sp))valDarkTextStylesAppTextStyles(titleTextStyle(fontSize18.sp,fontWeightFontWeight.SemiBold,colorColor.White,lineHeight26.sp),contentTextStyle(fontSize16.sp,colorColor.LightGray,lineHeight24.sp),hintTextStyle(fontSize14.sp,colorColor.Gray,lineHeight20.sp))//2.使用//主题样式的复用Text(text标题,styleMaterialTheme.appTextStyles.title)Text(text内容,styleMaterialTheme.appTextStyles.content)Text(text提示,styleMaterialTheme.appTextStyles.hint)//主题样式复用时的微调Text(text微调,styleMaterialTheme.appTextStyles.hint.copy(colorColor.Red,//红色fontWeightFontWeight.Bold//粗体))文字点击功能普通点击事件中点击事件最好放在修饰符中尺寸、背景等之后偏移与裁剪等设置之前如Modifier.width(200.dp) // 1. 尺寸.background(Color.Gray) // 2. 背景.clickable { … } // 3. 点击.offset(x 10.dp) // 4. 偏移.clip(RoundedCornerShape(12.dp)) // 5. 裁剪圆角矩形常用的形式默认带点击的涟漪效果Text(text文本具体内容,fontSize20.sp,//字号modifierModifier//修饰符用于控制尺寸、边距、对齐等布局行为.clickable(onClick{//普通场景点击默认带有涟漪效果Toast.makeText(context,点击,Toast.LENGTH_SHORT).show()}))取消点击时涟漪效果Text(text文本具体内容,fontSize20.sp,//字号modifierModifier//修饰符用于控制尺寸、边距、对齐等布局行为.clickable(onClick{//普通场景点击默认带有涟漪效果Toast.makeText(context,点击,Toast.LENGTH_SHORT).show()},indicationnull,//取消涟漪效果interactionSourceremember{MutableInteractionSource()}//取消时必须配合该参数))文字超链接注意文字超链接的关键在于这段文字不能使用传统的点击设置而是需要对可点击部分设置其他部分则不能设置/** * 通过AnnotatedString构建带注解处理样式的富文本 */valannotatedTextbuildAnnotatedString{append(请点击)//拼接普通文本pushStringAnnotation(tagURL,annotationhttps://www.baidu.com)//为执行文本片段标记注解//对指定文本片段设置样式withStyle(styleSpanStyle(colorColor.Blue,textDecorationTextDecoration.Underline)){//蓝色下划线append(此处)}pop()//结束当前注解的作用域append(访问)}valcontextLocalContext.current//获取compose提供的ContextText(textannotatedText,modifierModifier.clickable{//从整个文本的start到end中查找tagURL的注解返回ListStringAnnotationvalannotationsannotatedText.getStringAnnotations(//解析tagURL,start0,endannotatedText.length)annotations.firstOrNull()?.let{//获取第一个匹配的注解Toast.makeText(context,点击了链接,Toast.LENGTH_SHORT).show()}})文字复制功能全部可复制SelectionContainer(){//长按负值功能,此处时调用了默认的自定义长按选中并复制的功能页面Text(textstringResource(idR.string.contents),//文本colorColor.Red,//颜色fontSize15.sp,//字号)}部分可复制SelectionContainer(){Column(){//进行垂直排列Text(text可复制部分1)Text(text可复制部分2)DisableSelection{//内容包裹部分不可复制Text(不可复制部分1)Text(不可复制部分2)}Text(text可复制部分3)}}