Android WebView在4.4版本以上无法获取高度

  次阅读 作者:智能小宝 来源:互联网 2015-10-02 21:27 我要评论(0)

在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,其他手机没测试

4,目前无法解决,但是考虑到底部显示的话,我这里就直接做了一个偏移,

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();

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...