TextView常用的几种方式:占位符(一)

前言:

以前写过关于TextView的相关内容,但是觉得没有把他们给整理出来,有点凌乱,所以在这里再次花时间把TextView常用的几种方式再次整理出来让大家参考!

功能:

本文主要是完成类似京东套装价或好评度这样同一个TextView中部分字符串为动态数据的情况:
案例

实现原理:

android项目里的strings.xml的节点是支持占位符的:
<string name="data">整数型:%1$d,浮点型:%2$.2f,字符串:%3$s</string>
其中:
%是表示占位符的开始,从1开始
$是表示数据的数据类型:
d:整型数据
f:浮点型数据,“.2”表示有两位小数
s:字符串
然后在Java代码中先获取字符串资源的字符串,然后为占位符赋值:
String data = getResources().getString(R.string.data);
data = String.format(data,18,59.9,"说好为我泡花茶");
tv_data.setText(data);

实现方法:

  1. 添加TextView控件:

    
    <TextView
        android:layout_width="match_parent"
        android:text="@string/price"
        android:id="@+id/tv_price"
        android:layout_height="wrap_content" />
    
    
  2. 添加字符串资源,并为TextView设置字符串资源

    
    <string name="price">套装价:%1$s</string>
    
    
  3. 在activity中获取字符串资源的字符串对象
    String price = getResources().getString(R.string.price);
    
    
  4. 格式化字符串对象,并为其设置占位符的动态值

    
    price = String.format(price,"998.9");
    
    

  5. 为TextView的实例化对象设置字符串

    
    tv_price.setText(price);
    
    

项目展示:

项目展示

项目地址:

https://github.com/Winfred1989/DemoTextView
`textView2 <TextView>: Missing Constraints in ConstraintLayout` 这条错误信息表明你在使用 Android 的 `ConstraintLayout` 来布局 `TextView`(文本视图)时遇到了一些约束问题。`ConstraintLayout` 需要所有视图都明确指定其在其他视图约束下的位置或尺寸,以确保最终布局能够按预期呈现。 ### 错误原因分析: 当你看到类似这样的错误消息,通常是由于 `TextView` 或其他控件缺少必需的约束条件导致的。这可能是以下几个常见情况之一: 1. **缺失的约束**:例如,在某些情况下可能忘记指定了 `match_parent`, `wrap_content`, `alignWithParent`, `centerInParent` 等约束之一。 ```xml <!-- 正确 --> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@+id/button" app:layout_constraintStart_toEndOf="@+id/imageView" /> <!-- 错误 --> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@+id/button" /> ``` 2. **无效的引用**:检查你引用的 ID 是否存在于当前布局文件中,或者是在正确的上下文中被引用。 3. **复杂的约束链**:有时,约束之间可能会形成环形依赖或者无法直接解决的依赖关系,这需要逐层查找并调整。 4. **嵌套布局的问题**:如果在一个复杂或嵌套的布局中出现问题,可能需要更细致地检查内嵌布局及其包含的组件。 ### 解决步骤: #### 检查 XML 文件: 1. **审查每个 `TextView`**: 确保每个 `TextView` 都有一个明确的宽度 (`width`) 和高度 (`height`) 属性,并且已经应用了约束到其他组件上。 2. **定位未满足的约束**: - 使用 IDE 的错误提示功能,逐步查看每一条错误信息,确定哪一部分出现了问题。 - 使用调试工具(如 Android Studio 的 Layout Inspector)直观查看布局效果,找出异常或未连接的部分。 3. **简化测试**: - 如果可能,先将其他部分暂时隐藏起来,专注于单个 `TextView` 的布局问题。 - 渐进式增加复杂度,逐步添加约束和组件,直到再次遇到问题,以此缩小问题范围。 #### 调整布局策略: 1. **使用相对定位**:如果 `ConstraintLayout` 中的元素难以通过固定坐标完全对齐,可以尝试更多地利用其相对定位特性,比如使用 `app:layout_constraintEnd_toEndOf`、`app:layout_constraintStart_toStartOf` 等属性。 2. **层级管理**:对于大型布局,考虑将相似的功能组件放在单独的约束组下,以便于管理和维护。 3. **利用空间**:合理安排组件间的距离和空间利用,避免因为间距设置不当而造成布局错位或布局无法渲染的情况。 ### 相关问题: 1. **如何避免 `ConstraintLayout` 中的错误?** 2. **`ConstraintLayout` 和其它布局类型相比有何优势?** 3. **在哪些场景下应该优先使用 `ConstraintLayout`?**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值