Android(安卓)WebView在4.4版本以上无法获取高度
16lz
2021-01-24
在4.4以下的系统中,我们通常监听webview滑动到底端的方法如下:
1,先重新webview,FoundWebView
public class FoundWebView extends WebView { ScrollInterface mt; public FoundWebView(Context context) { super(context); // TODO Auto-generated constructor stub } public FoundWebView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public FoundWebView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); //Log.e("hhah",""+l+" "+t+" "+oldl+" "+oldt); mt.onSChanged(l, t, oldl, oldt); } public void setOnCustomScroolChangeListener(ScrollInterface t){ this.mt=t; } /** * 定义滑动接口 * @param t */ public interface ScrollInterface { public void onSChanged(int l, int t, int oldl, int oldt) ; } }
2,很少有人不自定义webview吧,直接调用系统的总是有一个地址栏太蛋疼了,所以一般都是在一个activity里加载webview
mWebView.setOnCustomScroolChangeListener(new ScrollInterface() { @Override public void onSChanged(int l, int t, int oldl, int oldt) { // TODO Auto-generated method stub webviewHight = mWebView.getContentHeight()*mWebView.getScale(); //已经处于底端 if((int)webviewHight == (mWebView.getHeight() + mWebView.getScrollY()) ){ } //已经处于顶端// if (mWebView.getScaleY() == 0) {// // } } });
3,在底端和顶端都可以操作,但是在4.4的系统中,我发现无论如何获取的高度都会成这样
(int)webviewHight > mWebView.getHeight() + mWebView.getScrollY()
在一个测试手机上发现差值总是1,其他手机没测试
mWebView.setOnCustomScroolChangeListener(new ScrollInterface() { @Override public void onSChanged(int l, int t, int oldl, int oldt) { // TODO Auto-generated method stub webviewHight = mWebView.getContentHeight()*mWebView.getScale(); //为解决4.4的系统无法获取正确的高度加一个“<10”的 if((int)webviewHight - (mWebView.getHeight() + mWebView.getScrollY()) < 10){ //已经处于底端 10个偏移量 } //已经处于顶端// if (mWebView.getScaleY() == 0) {// // } } });
更多相关文章
- Android(安卓)向系统发送一条短信
- Android(安卓)SystemService类注释
- android AlarmManager 的相關應用
- android中使用线程(比如修改textview的text)
- android系统颜色大全
- Android(安卓)Log 日志系统
- Android(安卓)驱动之旅 第五章: 在Android(安卓)系统的应用程序框
- Android(安卓)滑动绘制流程探究 系统是如何提高滑动性能?
- 【Android】Android设计准则