我想要一个自动滚动的TextView,当文本过长时。我按照这里在stackoverflow发布的每个教程或提示(是的,我阅读了许多类似于这个问题的主题,但没有人解决它)。
所以我的活动布局就像这样:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
....
<TextView
android:id="@+id/music_name"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:gravity="center"
android:text="Music Name"
android:textSize="24sp"
android:layout_centerHorizontal="true"
android:singleLine="true"
android:scrollHorizontally="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever" />
....
</RelativeLayout>
而在OnCreate( )中,我这样做:
music_name.setSelected(true);
music_name.setMovementMethod(new ScrollingMovementMethod());
music_name是一个TextView。
即使我做了所有的事情,我的TextView也不会滚动。可能出了什么问题?
编辑[新]: 我注意到它只在第一次运行时有效。其他时候当我改变TextView上的文本时,它就不再起作用了。这可能是什么原因呢?我有一个线程(Timer),每50毫秒唤醒一次以更新SeekBar和其他两个TextView,这可能阻塞了某些东西吗?