Android中的TextView自带跑马灯效果,只需要通过简单的配置,就可以完成滚动的效果。

XML中进行配置

<TextView
    android:id="@+id/tv3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:marqueeRepeatLimit="marquee_forever"
    android:scrollHorizontally="true"
    android:singleLine="true"
    android:text="我是跑马灯,我是跑马灯,我是跑马灯,我是跑马灯,我是跑马灯,我是跑马"
    android:textSize="28sp" />

可以看到需要很多的属性配置,了解一下每个属性的含义:

android:ellipsize="marquee" // 设置为跑马灯效果
android:focusable="true" // 获取焦点
android:focusableInTouchMode="true" touch // 时获取焦点
android:marqueeRepeatLimit="marquee_forever" // 设置重复次数
android:scrollHorizontally="true" // 设置为水平滚动
android:singleLine="true" // 单行显示

然后我在实际使用的过程中发现,按照这个设置方法是无效的,然后通过各大搜索引擎找到了解决办法。

解决办法

需要在java中使用setSelected(true)方法,然后就可以解决无效的问题

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        TextView tv3 =findViewById(R.id.tv3); //从这里开始
        tv3.setSelected(true);
    }
}

参考

https://juejin.im/post/6844903541887205383

https://blog.csdn.net/qq_15131627/article/details/80741917

版权声明
本文作者珂泽
文章来源风也雨忆笙
原文链接
转载说明非特殊说明文章均为原创,页脚已标识是否允许转载,转载请注明出处!感谢您的支持!
微信公众号
最后修改:2020-10-04 08 : 18 PM
如果您觉得我的文章有帮助,请随意赞赏!