【问题标题】:Scroll text in a horizontal scroll view在水平滚动视图中滚动文本
【发布时间】:2014-05-30 08:21:25
【问题描述】:

我看到了一些与我的问题类似的帖子。但是,这些帖子中提到的解决方案并没有帮助我解决问题。这是场景。我在水平滚动视图中有一个 TextView。这个想法是,只要将文本(大于视图)附加到 TextView,它就必须自动滚动到结束。这是布局 sn-p。

<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");

实际上,它应该将文本滚动到末尾。但事实并非如此!我缺什么?

【问题讨论】:

  • 从未尝试过,但看看在 TextView 或 Horizo​​ntalScrollView 中设置gravity=right 是否有效

标签: android android-layout textview android-scrollview


【解决方案1】:

首先,您的滚动视图永远不会滚动,因为它的内容视图(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);              
        }
    });

请在您尝试后告诉我。

【讨论】:

  • 谢谢!有效!只是匆匆忙忙。我们可以让滚动视图从布局 XML 中滚动吗?
  • 我不这么认为... :/
【解决方案2】:

让我们尝试修复您的 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,您的文本没有足够的大小来滚动。它只有最大宽度是屏幕宽度。

希望有所帮助。

【讨论】:

  • 除非我理解错了,它与TextView的高度无关,你为什么把它改成10dp?但是,您对宽度是正确的。
  • 这是一个例子来说明我的想法,Mr.Renjith 需要修复 android:layout_height。如果不固定 android:layout_height 大小,TextView 会增加高度,而不是宽度。
  • 没有什么会改变高度,因为它是单行 TextView。如果 'android:SingleLine' 设置为 false,我会同意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多