当我的文本太长时,我正在尝试自动滚动文本视图。我遵循了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());

音乐名称是文本视图。
所以即使这样我的文本视图也不会滚动。怎么了?
编辑[新]:我注意到它只是第一次工作。其他时候我在textview上更改文本时,它不再工作。它能做什么?我有一个线程(计时器)每50毫秒唤醒一次更新一个seekbar和其他两个文本视图,这可能会阻止什么?

最佳答案

TextView在处理滚动时有时会遇到困难。您必须在布局中设置的主要属性如下:

android:scrollHorizontally="false"
android:scrollbars="vertical"
android:gravity="bottom"

设置为底部的gravity将使滚动条每次追加一行时都下降到TextView的底部。所以,只有当你想那样做的时候才使用它。
还需要music_name.setMovementMethod(new ScrollingMovementMethod());语句。
这样应该行得通。

07-28 01:58
查看更多