在水平滚动视图中滚动文本

时间:2014-05-30 08:21:26

标签: android android-layout textview android-scrollview

我看过一些类似于我的问题的帖子。但是,这些帖子中提到的解决方案并没有帮我解决问题。这是场景。我在水平滚动视图中有一个TextView。这个想法是,一旦文本(大于视图)附加到TextView,它必须自动滚动到结束。这是布局代码段。

<HorizontalScrollView
             android:id="@+id/horizontalScrollView1"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:layout_margin="5dp"
             android:background="@color/subTitleColor"
             android:fillViewport="true"
             android:scrollbars="none" >

            <TextView
                android:id="@+id/drillPath"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="bottom"
                android:text="this is a such a long text that scrolling is needed, scroll more"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@color/textColorWhite" />

</HorizontalScrollView> 

事件发生后,我会执行以下操作。

textView.append("do auto scroll");

实际上,它应该将文本滚动到最后。但它不是!我缺少什么?

2 个答案:

答案 0 :(得分:4)

首先,您的滚动视图永远不会滚动,因为其内容视图(TextView)处于fill_parent模式。它应该包装其内容,以便为文本留出空间并且比其父级更大。 (将textView宽度更改为:android:layout_width="wrap_content"

然后,这里没有任何要求滚动的内容,我认为它不会自动发生。

添加类似这样的内容以请求滚动到滚动视图的末尾:

   textView.append("do auto scroll");

    scrollView.post(new Runnable() {            
        @Override
        public void run() {
               scrollView.fullScroll(View.FOCUS_RIGHT);              
        }
    });

当你尝试过时让我知道。

答案 1 :(得分:0)

让我们尝试修复TextView高度并将此宽度layoutParam更改为wrap_content

<HorizontalScrollView
             android:id="@+id/horizontalScrollView1"
             android:layout_width="match_parent"     <-- Here
             android:layout_height="10dp"            <-- Here
             android:layout_margin="5dp"
             android:background="@color/subTitleColor"
             android:fillViewport="true"
             android:scrollbars="none" >

            <TextView
                android:id="@+id/drillPath"
                android:layout_width="wrap_content"  <-- Here
                android:layout_height="10dp"         <-- Here
                android:gravity="bottom"
                android:text="this is a such a long text that scrolling is needed, scroll more"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@color/textColorWhite" />

</HorizontalScrollView> 

由于此layoutParam,您的文字没有足够的大小来滚动。它的最大宽度只是屏幕宽度。

希望有所帮助。