在这篇文章中,我们将深入探讨如何在 Android 的 TextView 下方创建一个虚线下划线。虽然这看起来像是一个基础的 UI 需求,但在 2026 年的开发环境中,我们需要结合现代设计系统、AI 辅助开发以及性能优化的视角来重新审视它。为了让大家对我们即将构建的界面有一个直观的印象,下面展示了一张示例图片。
分步实现
第一步:创建一个新项目
要在 Android Studio 中创建一个新项目,请参考 如何在 Android Studio 中创建/启动一个新项目 这里的指南。当然,在我们当前的 2026 技术栈中,你可能更倾向于使用 KMP Multiplatform wizard 或者 Cursor 这样的 AI IDE 来一键生成脚手架。
第二步:编写 dashed_underline.xml 文件
让我们进入 res > drawable > new > drawable resource file,创建一个新文件并将其命名为“dashedunderline.xml”。在这个文件中,我们需要定义虚线所需的所有属性。稍后,我们会将其作为 TextView 的背景添加进去。以下是 INLINECODE0ee45556 的代码,为了方便大家理解,我特意添加了详细的注释。
<stroke
android:color="@color/black"
android:dashWidth="8dp"
android:dashGap="4dp"
android:width="2dp"/>
第三步:编写 activity_main.xml 文件
现在,让我们打开 activitymain.xmlINLINECODE29cb4a67activitymain.xmlINLINECODEd590fee5layer-listINLINECODE1d33cdf5drawBehindINLINECODE31fab0d4dashGapINLINECODE949a2e20dashWidthINLINECODEc18cfe9fcontentDescriptionINLINECODE6df2c5dcViewCompat.setAccessibilityDelegateINLINECODE37722378setLayerType(LAYERTYPESOFTWARE)INLINECODE17518f4bshapeINLINECODEf0a9e12cINLINECODEa1bfe2caINLINECODEa338972ddashWidthINLINECODE01263f80colorScheme.primaryINLINECODE5bed339bColor.BlackINLINECODE525dbd29layer-listINLINECODE05dfffd4pathEffect 的参数,或者检查是否误用了 background` 属性覆盖了 padding。