我看过一些类似于我的问题的帖子。但是,这些帖子中提到的解决方案并没有帮我解决问题。这是场景。我在水平滚动视图中有一个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");
实际上,它应该将文本滚动到最后。但它不是!我缺少什么?
答案 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,您的文字没有足够的大小来滚动。它的最大宽度只是屏幕宽度。
希望有所帮助。