Android自定义TextView实现跑马灯不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android自定义TextView实现跑马灯不起作用相关的知识,希望对你有一定的参考价值。

自定义的控件继承TextView,使用下面的属性:
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
android:marqueeRepeatLimit="marquee_forever"
为什么跑马灯不起作用?多余的文字只显示省略号,我是在写在xml文件中然后在另一个文件中include该文件,所以外面套了很多RelativeLayout.

参考技术A 把整个textview的属性弄出来看一下 先去掉android:scrollHorizontally="true" 看一下可不可以追问

去掉了,不是这个原因

追答

你把整个textview的属性都贴出来吧 包括宽度高度,一般来说宽度最好是定长。当文字超出长度才能出现跑马灯效果。 我这里有一个可以跑

你可以这样 单独写出来试一下 看是不是textview的问题 也许不是哦

追问

这个问题已经解决了,在自定义的TextView控件中重写isFocused()返回true就行,但是遇到新问题就是界面有多个这样的控件显示时当弹出Dialog后这些自定义的TextView控件就会失去焦点,跑马灯效果又变成“...”的形式了,当Dialog消失之后又恢复正常

参考技术B scrollHorizontally这个是实现横向拖动条的属性,可以去掉试试追问

去掉了,不是这个原因

参考技术C http://www.cnblogs.com/xiao-xu/p/3210639.html
这是以前做的笔记,可以参考一下

android TextView实现跑马灯效果(字体滚动)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.myapplication.MainActivity">
<!--
android:singleLine="true"    //文字一行显示
android:ellipsize="marquee"  //跑马灯属性
android:focusable="true"    //TextView是否可以获取焦点
android:focusableInTouchMode="true"  //文字滑动的时候是否可以获取焦点
-->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="zxcvbnmasdfghjklqwertsssssssssssssssssssssssyuiop"
android:textSize="24sp"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"/>
</LinearLayout>


















以上是关于Android自定义TextView实现跑马灯不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Android 手机卫士--自定义控件(获取焦点的TextView)

Android TextView跑马灯效果

Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]

android垂直TextView怎么能让它自动滚动

用androidstudio的textview怎么实现跑马灯

android 怎样给一个由三个textview 组成的添加跑马灯效果