实现原理
第一步:自定义BottomWebView继承自WebView;
第二步:调用WebView中的 computeVerticalScrollRange()
方法获得获取WebView可纵向滚动的最大距离;
第三步:调用WebView的 scrollTo(x,y)
方法,设置 x为0,y为纵向滚动的最大距离,则可将WebView滚动到最底部。
实现代码:
public class BottomWebView extends WebView {
public BottomWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
//实例化WebViwe后,调用此方法可滚动到底部
public void scrollToBottom() {
scrollTo(0, computeVerticalScrollRange());
}
}
WebView加载完后默认滚动到底部
在 WebViewClient
中的 onPageFinished()
方法中调用 scrollToBottom
即可实现:
实现代码:
public class BottomWebView extends WebView {
public BottomWebView(Context context, AttributeSet attrs) {
super(context, attrs);
//设置WebViewClient
initWebViewClient();
}
private void initWebViewClient() {
setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
post(new Runnable() {
@Override
public void run() {
scrollToBottom();
}
});
}
});
}
//调用此方法可滚动到底部
private void scrollToBottom() {
scrollTo(0, computeVerticalScrollRange());
}
}