布局界面如下
<ScrollView
android:id="@+id/move_bottom"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_alignParentBottom="true">
<!-- 状态信息 -->
<TextView
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</ScrollView>
Srcollview 包裹这 TextView。
在文本通过textiew.apped()不断的往TextView中假如新的文本信息的时候,如果不做相应的操作,文本是不会随着内容的增多,自动显示到最底部
解决办法:
创建 hadler
Handler mHandler = new Handler();
public void scrollToBottom(ScrollView scrollView, TextView view) {
mHandler.post(new Runnable() {
@Override
public void run() {
if (scrollView == null && view == null) {
return;
}
//测量view 和 scrollview的 高度
int offHeight = view.getMeasuredHeight() - scrollView.getMeasuredHeight();
// 假如差值小于0 那给它赋值为0
if (offHeight < 0) {
offHeight = 0;
}
//调用 ScrollView 的 scrollTo 进行调用
scrollView.scrollTo(0, offHeight);
}
});
}
最后别忘了 在onDestry()方法内将handler 进行赋空
@Override
protected void onDestroy() {
super.onDestroy();
if (mHandler != null) {
mHandler = null;
}
}