ScrollView alawys滚动到底部

我在布局中定义了一个texrteit的滚动视图:

<ScrollView android:fillViewport="true" android:layout_marginBottom="50dip" android:id="@+id/start_scroller" android:layout_height="fill_parent" android:layout_width="fill_parent" android:fadingEdge="none"> <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" > </TextView> </ScrollView> 

我用下面的方法向这个ScrollView添加文本:

 public void writeToLogView(String textMsg) { if (text.getText().equals("")) { text.append(textMsg); } else { text.append("\n" + textMsg); scroller.scrollBy(0, 1000000); } } 

正如你可以看到我追加文本,并尝试滚动到ScrollView的底部。 不幸的是,这不能正常工作。 它滚动下来,但并不总是,并不总是在底部。 任何提示?

Solutions Collecting From Web of "ScrollView alawys滚动到底部"

或者在scrollView中改变视图大小后使用:

 scroller.post(new Runnable() { public void run() { scroller.fullScroll(ScrollView.FOCUS_DOWN); } }); 

在附加文本之后,尝试使用TextView的尺寸来计算应该滚动到的位置,而不是像下面这样常量:

 scroller.post(new Runnable() { public void run() { scroller.scrollTo(text.getMeasuredWidth(), text.getMeasuredHeight()); } }); 

对于那些使用Android注释的人 ,可以这样做:

 @ViewById ScrollView myScrollView; @AfterViews protected void init() { scrollToEnd(); } @UiThread(delay=200) void scrollToEnd() { myScrollView.fullScroll(ScrollView.FOCUS_DOWN); }