Android 将ScrollView滚动到底部最后一个控件的3种方法
方案1:使用 scrollTo 或 smoothScrollTo 滚动到 scrollview 最后一个节点位置
public static void scrollToBottom(final View scroll, final View inner) {
Handler handler = new Handler();
handler.post(new Runnable() {
public void run() {
int offset = inner.getMeasuredHeight() - scroll.getHeight();
if (offset < 0) {
offset = 0;
}
scroll.scrollTo(0, offset);
}
});
}
方案2:使用监听方法 addOnGlobalLayoutListener
scrollView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
scrollView.post(new Runnable() {
public void run() {
scrollView.fullScroll(View.FOCUS_DOWN);
}
});
}
});
方案3:在该方案中,如过scrollview中元素还未加载完全就调用,滚动到底部会失败,推荐使用方案3)
scrollView.post(new Runnable() {
public void run() {
scrollView.fullScroll(View.FOCUS_DOWN);
}
});
我的笔记