You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin.Android的XML中为动态行数表格的TextView添加下划线?

嘿,我懂你的痛点——硬编码文本的下划线方案完全适配不了行数动态变化的表格,给你几个实用又灵活的解决办法:

动态为表格内TextView添加下划线的解决方案

方法1:用SpannableString动态处理(最灵活)

不管你的TextView文本来自数据源、资源文件还是其他地方,都能在代码里动态给文本加上下划线,完美适配行数变动的场景:

// 假设你在遍历表格行/Adapter绑定数据时拿到目标TextView
TextView targetTv = row.findViewById(R.id.table_item_text);
String originalText = targetTv.getText().toString();

// 创建带下划线的SpannableString
SpannableString underlinedText = new SpannableString(originalText);
underlinedText.setSpan(new UnderlineSpan(), 0, originalText.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

// 把处理后的文本设置回TextView
targetTv.setText(underlinedText);

如果是用RecyclerView或者自定义表格Adapter,把这段逻辑放在onBindViewHolder()(RecyclerView)或getView()(ListView/旧Adapter)里即可,每次绑定数据时自动处理下划线。

方法2:用XML样式全局复用(最省心)

如果表格里所有TextView都需要下划线,直接定义一个全局样式,一劳永逸:
在res/values/styles.xml中添加样式:

<style name="TableUnderlinedText">
    <item name="android:textColor">@color/your_text_color</item>
    <item name="android:textSize">15sp</item>
    <item name="android:underlineText">true</item> <!-- 核心下划线属性 -->
</style>

然后在表格项的布局文件里给TextView应用这个样式:

<TextView
    android:id="@+id/table_item_text"
    style="@style/TableUnderlinedText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

不管表格行数怎么变,只要用了这个样式的TextView都会自动显示下划线,不用写任何额外代码。

方法3:用Html.fromHtml(适合带HTML需求的场景)

如果你的文本本身支持HTML格式,也可以通过标签快速添加下划线:

String textWithUnderline = "<u>" + targetTv.getText().toString() + "</u>";
// API 24+推荐使用FROM_HTML_MODE_LEGACY或其他对应模式
targetTv.setText(Html.fromHtml(textWithUnderline, Html.FROM_HTML_MODE_LEGACY));

这种方式适合本身就需要处理HTML格式文本的场景,但如果只是单纯加下划线,前两种方法更直接。


根据你的场景选就行:部分TextView需要下划线用方法1;全表格统一需求用方法2;有HTML格式需求用方法3。

内容的提问来源于stack exchange,提问作者Profile3ForStack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:14:40