平滑滚动Textview

时间:2014-01-30 02:58:05

标签: android textview

我有一个TextView,定义如下:

    <TextView
        android:id="@+id/play_info"
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/play_info_background"
        android:ellipsize="none"
        android:maxLines="8"
        android:orientation="vertical"
        android:scrollbars="none"
        android:singleLine="false"
        android:textColor="@color/play_info_text_color"
        android:textSize="@dimen/play_info_font_size"
        android:overScrollMode="never" >
    </TextView>

我将TextView设置为可在代码中滚动,如下所示:

cardInfo = (TextView) play.findViewById(R.id.play_info);
cardInfo.setMovementMethod(new ScrollingMovementMethod()); 

TextView滚动,但不是很平滑,就像ScrollView中的任何内容一样。 我希望它顺利滚动。

我已经尝试将TextView(带有滚动禁用)放在ScrollView中,但这与它所包含的TableRow的高度相混淆,并且似乎没有办法纠正它。

2 个答案:

答案 0 :(得分:0)

你可能缺少焦点属性,Textview没有聚焦,所以它不滚动。

 <TextView
     android:id="@+id/title_itemcount"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:focusable="true"
     android:focusableInTouchMode="true"
     android:maxLines="3"
     android:padding="4dp"
     android:scrollbars="vertical"
     android:textColor="@android:color/background_dark" /> 

希望它有帮助...:)

答案 1 :(得分:0)

问题是,如果您想要“平滑滚动”,则必须将TextView放在ScrollView中。当你这样做时,你就不能再这样做了 将TextView的高度设置为“match_parent”。例如,当你需要一个用文本动态填充的大型TextBox时, 但没有重新调整大小。当您尝试将ScrollView的属性设置为“match_parent”时,子TextView仍会包含内容。

我能够这样做:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:drawable/edit_text">

    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@null"
            android:gravity="bottom"
            android:singleLine="false"
            android:typeface="serif"/>
    </ScrollView>
</RelativeLayout>

RelativeLayout容器,用作新的TextView,具有所需的背景,原始TextView,背景设置为null。所以当TextView 扩展,添加新文本,就像文本卷增加一样。如果ScrollView

,文本将与布局属性对齐

您可能还需要停用TextView的滚动功能,以避免在某些情况下与ScrollView的滚动发生冲突。