TextView两端对齐

TextView两端对齐方式一 在 ConstranLayo 中实现主要实现代码 valtext getString R string text valtextLen text lengthvalset ConstraintSe set clone constrainLay for iin0untilte

方式一: 在ConstranLayout中实现

主要实现代码,dip2px方法自行百度,textView_top为顶部组件id

 val text = getString(R.string.text) val textLen = text.length val set = ConstraintSet() set.clone(constrainLayout) for (i in 0 until textLen) { 
    val id = TextViewConstans.ids[i] val textView = TextView(this) textView.text = text[i].toString() textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15f) textView.id = id constrainLayout.addView(textView) //这两行不可缺少,不然textview不会显示 set.constrainHeight(TextViewConstans.ids[i], ConstraintLayout.LayoutParams.WRAP_CONTENT) set.constrainWidth(TextViewConstans.ids[i], ConstraintLayout.LayoutParams.WRAP_CONTENT) when (i) { 
    0 -> { 
    set.connect(id, ConstraintSet.START, R.id.textView_top, ConstraintSet.START) //首字贴紧左边时注释 //set.connect(id, ConstraintSet.END, TextViewConstans.ids[i + 1], ConstraintSet.START) set.connect(id, ConstraintSet.TOP, R.id.textView_top, ConstraintSet.BOTTOM, CommonUtil.dip2px(this, 10f)) } agentStrLen - 1 -> { 
    //尾字贴紧右边时注释 //set.connect(id, ConstraintSet.START, TextViewConstans.ids[i - 1], ConstraintSet.END) set.connect(id, ConstraintSet.END, R.id.textView_top, ConstraintSet.END) set.connect(id, ConstraintSet.TOP, TextViewConstans.ids[0], ConstraintSet.TOP) set.connect(id, ConstraintSet.BOTTOM, TextViewConstans.ids[0], ConstraintSet.BOTTOM) } else -> { 
    set.connect(id, ConstraintSet.START, TextViewConstans.ids[i - 1], ConstraintSet.END) set.connect(id, ConstraintSet.END, TextViewConstans.ids[i + 1], ConstraintSet.START) set.connect(id, ConstraintSet.TOP, TextViewConstans.ids[0], ConstraintSet.TOP) set.connect(id, ConstraintSet.BOTTOM, TextViewConstans.ids[0], ConstraintSet.BOTTOM) } } } set.applyTo(constrainLayout) 

id集合,根据需要加减

object TextViewConstans { 
    val ids = mutableListOf( R.id.textView_0, R.id.textView_1, R.id.textView_2, R.id.textView_3, R.id.textView_4, R.id.textView_5, R.id.textView_6, R.id.textView_7, R.id.textView_8, R.id.textView_9, R.id.textView_10, R.id.textView_11, R.id.textView_12, R.id.textView_13, R.id.textView_14, R.id.textView_15, R.id.textView_16, R.id.textView_17, R.id.textView_18, R.id.textView_19 ) } 

定义ids.xml

*这里注意不要写成* <item name="textView_0" type="id">textView_0 
     item> 会报 error: <item> inner element must either be a resource reference or empty. 
 
    <resources> <item name="textView_0" type="id"/> <item name="textView_1" type="id"/> <item name="textView_2" type="id"/> <item name="textView_3" type="id"/> <item name="textView_4" type="id"/> <item name="textView_5" type="id"/> <item name="textView_6" type="id"/> <item name="textView_7" type="id"/> <item name="textView_8" type="id"/> <item name="textView_9" type="id"/> <item name="textView_10" type="id"/> <item name="textView_11" type="id"/> <item name="textView_12" type="id"/> <item name="textView_13" type="id"/> <item name="textView_14" type="id"/> <item name="textView_15" type="id"/> <item name="textView_16" type="id"/> <item name="textView_17" type="id"/> <item name="textView_18" type="id"/> <item name="textView_19" type="id"/>  
     resources> 

方式二: 在LinearLayout中实现,使用横向排列,设置weight,这里就不贴代码了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222532.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:35
下一篇 2026年3月17日 下午3:35


相关推荐

  • AutoMapper学习

    AutoMapper学习http://automapper.org/这是一款DTO的映射工具,AutoMapper是基于对象到对象约定的映射工具,它可以把复杂的对象模型转为DTO,或者其他的–那些让设计更合理更适于序列化、通信、传递消息的简单对象或者干脆就只是在领域层与应用层之间搭建一个简单的ACL防护层(就像DTO一样,用于代码的显示转换)来增加各自层的相互独立性。简单来说就是:就是根据A的模型和B的模型中的定义,自动将A模型映射为一个全新的B模型。前言VO、DTO、DO、PO、DAOVO(ViewObject.

    2025年8月20日
    4
  • 挑战10个最难回答的Java面试题(附答案)

    译者:Yujiaaosegmentfault.com/a/1190000019962661推荐阅读(点击即可跳转阅读)1.SpringBoot内容聚合2.面试题内容聚合3.设计模式内容聚合4.Mybatis内容聚合5.多线程内容聚合这是我收集的10个最棘手的Java面试问题列表。这些问题主要来自Java核心部分,不涉及JavaEE相关问题。…

    2022年4月14日
    73
  • ssl数字证书是什么意思_数字证书的内容是

    ssl数字证书是什么意思_数字证书的内容是本文转自 http://seanlook.com/2015/01/15/openssl-certificate-encryption/SSL/TLS介绍见文章 SSL/TLS原理详解。如果你想快速自建CA然后签发数字证书,请移步 基于OpenSSL自建CA和颁发SSL证书 。首先简单区分一下HTTPS、SSL、OpenSSL三者的关系:SSL是在客户端和服务器之间建立

    2025年6月2日
    6
  • Mysql中Profiling之性能分析

    Mysql中Profiling之性能分析MySQL5 0 37 版本以上支持了 Profiling 官方手册 此工具可用来查询 SQL 会执行多少时间 Systemlock 和 Tablelock 花多少时间等等 对定位一条语句的 I O 消耗和 CPU 消耗非常重要 从启动 profile 之后的所有查询包括错误的语句都会记录 关闭会话或者 setprofiling 0 就关闭了 开启 profilingmys gt se

    2026年3月18日
    2
  • keil5使用技巧

    keil5使用技巧文章目录前言1、关闭其他文件2、keil注释如何不乱码4、每段程序后都要空行5、添加头文件6、开启和关闭工程列表框7、找到库函数总结前言1、关闭其他文件2、keil注释如何不乱码4、每段程序后都要空行5、添加头文件6、开启和关闭工程列表框7、找到库函数方法就是打开一个.h文件拖到最后→看到如下字样的,就是库函数了/**@defgroupGPIO_Exported_Functions@{*/例如:找EXTI的库函数打开exti.h文件,拖到最后,这些就是EXTI

    2022年5月23日
    64
  • linux查看jvm堆栈信息_linux查看线程堆栈

    linux查看jvm堆栈信息_linux查看线程堆栈pstack在linux上是一个非常有用的工具,可以查看进程内部调用函数的信息。可惜的是在ubuntu10.10版本中没有找到这个工具。无奈,只能下载尝试编译了。首先安装编译环境,使用如下命令:apt-getinstallbuild-essential#编译所需环境apt-getinstalldpkg-dev#dpkg编译所需环境apt-getbuild-deppstack…

    2025年11月17日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号