Android | 启用 TextView 跑马灯效果的方法

如果要给一个 TextView 设置跑马灯效果,我们仅需要给其设置如下属性即可:

xml 复制代码
<TextView
    android:ellipsize="marquee"
    android:singleLine="true" />

ellipsize 属性设置为 marquee 表示开启跑马灯效果,而 singleLine 则设置其为单行展示。同时需要在 TextView 获焦或被选中时才会有跑马灯效果,因此我们在代码中可以手动让其获焦或者设置其为 selected 的状态 textview.isSelected = true

通过对比发现,设置 android:lines="1"android:maxLines="1" 是没有效果的,一定是要 android:singleLine="true" 才可以,以下是实例代码:

xml 复制代码
<!-- 布局 -->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:id="@+id/tv1"
        style="@style/TextView_Style"
        android:text="(未设置 Selected) 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯" />

    <TextView
        android:id="@+id/tv2"
        style="@style/TextView_Style"
        android:text="(仅设置 Selected) 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯" />

    <TextView
        android:id="@+id/tv3"
        style="@style/TextView_Style"
        android:lines="1"
        android:text="(设置 Selected 设置lines = 1) 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯" />

    <TextView
        android:id="@+id/tv4"
        style="@style/TextView_Style"
        android:maxLines="1"
        android:text="(设置 Selected 设置maxLines = 1) 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯" />

    <TextView
        android:id="@+id/tv5"
        style="@style/TextView_Style"
        android:singleLine="true"
        android:text="(设置 Selected 设置singleLine = true) 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯 跑马灯" />

</LinearLayout>

<!-- style -->
<style name="TextView_Style">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:ellipsize">marquee</item>
    <item name="android:textSize">36sp</item>
    <item name="android:layout_marginVertical">8dp</item>
    <item name="android:textColor">@color/black</item>
</style>

各种情况的结果如下:

相关推荐
一个人旅程~38 分钟前
虚数与量子迷踪
经验分享·笔记·微信·电脑·量子计算
智者知已应修善业9 小时前
【proteus中lm339电压滞回比较器达到三角波转换成方波】2023-4-13
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
xiangpanf10 小时前
Laravel 10.x重磅升级:五大核心特性解析
android
恒拓高科WorkPlus11 小时前
私有化视频会议的核心价值在于安全与自主可控
经验分享
其实秋天的枫12 小时前
2025年12月大学英语六级真题及答案电子版pdf三套全
经验分享·pdf
其实秋天的枫13 小时前
【专四】英语专业四级TEM4历年真题及答案电子版PDF(2009-2025年)
经验分享
robotx13 小时前
安卓线程相关
android
消失的旧时光-194313 小时前
Android 面试高频:JSON 文件、大数据存储与断电安全(从原理到工程实践)
android·面试·json
其实秋天的枫14 小时前
2025年12月英语六级真题及答案解析完整版(第一、二、三套全PDF)
经验分享·算法
中屹指纹浏览器14 小时前
2026指纹浏览器性能瓶颈分析与优化技巧
经验分享·笔记