您的位置:首页 > 移动开发

Android监听WebView滑动到底部

2013-12-20 11:49 573 查看
http://www.open-open.com/lib/view/open1379383341959.html

MainActivity如下:

01
package
cn.testwebview;
02
import
android.app.Activity;
03
import
android.graphics.Bitmap;
04
import
android.os.Bundle;
05
import
android.webkit.WebSettings;
06
import
android.webkit.WebView;
07
import
android.webkit.WebViewClient;
08
import
cn.testwebview.TestWebView.ScrollInterface;
09
/**
10
*
Demo描述:
11
*
监听WebView滑动到底部
12
*
13
*
参考资料:
'target='_blank'>http://blog.csdn.net/conant1989/article/details/8124582[/code]
14
*
1
15
*
Thankyouverymuch
16
*/
17
public
class
MainActivity
extends
Activity
{
18
private
TestWebView
mTestWebView;
19
@Override
20
protected
void
onCreate(Bundle
savedInstanceState){
21
super
.onCreate(savedInstanceState);
22
setContentView(R.layout.main);
23
initWebView();
24
}
25
26
27
28
//设置WebView
29
private
void
initWebView()
{
30
mTestWebView
=(TestWebView)findViewById(R.id.webView);
31
mTestWebView.setVerticalScrollBarEnabled(
true
);
32
mTestWebView.setHorizontalScrollBarEnabled(
false
);
33
mTestWebView.getSettings().setSupportZoom(
true
);
34
mTestWebView.getSettings().setBuiltInZoomControls(
true
);
35
mTestWebView.getSettings().setJavaScriptEnabled(
true
);
36
37
mTestWebView.getSettings().setDomStorageEnabled(
true
);
38
mTestWebView.getSettings().setPluginsEnabled(
true
);
39
mTestWebView.requestFocus();
40
41
mTestWebView.getSettings().setUseWideViewPort(
true
);
42
mTestWebView.getSettings().setLoadWithOverviewMode(
true
);
43
mTestWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
44
45
mTestWebView.loadUrl(
"http://www.ifeng.com"
);
46
mTestWebView.setWebViewClient(
new
TestWebViewClient());
47
webViewScroolChangeListener();
48
49
}
50
51
//核心代码
52
private
void
webViewScroolChangeListener()
{
53
mTestWebView.setOnCustomScroolChangeListener(
new
ScrollInterface()
{
54
@Override
55
public
void
onSChanged(
int
l,
int
t,
int
oldl,
int
oldt)
{
56
//WebView的总高度
57
float
webViewContentHeight=mTestWebView.getContentHeight()
*mTestWebView.getScale();
58
//WebView的现高度
59
float
webViewCurrentHeight=(mTestWebView.getHeight()
+mTestWebView.getScrollY());
60
System.out.println(
"webViewContentHeight="
+webViewContentHeight);
61
System.out.println(
"webViewCurrentHeight="
+webViewCurrentHeight);
62
if
((webViewContentHeight-webViewCurrentHeight)
==
0
)
{
63
System.out.println(
"WebView滑动到了底端"
);
64
}
65
}
66
});
67
}
68
69
70
private
class
TestWebViewClient
extends
WebViewClient{
71
@Override
72
public
void
onPageStarted(WebView
view,Stringurl,Bitmapfavicon){
73
super
.onPageStarted(view,
url,favicon);
74
}
75
@Override
76
public
boolean
shouldOverrideUrlLoading(WebView
view,Stringurl){
77
view.loadUrl(url);
78
return
true
;
79
}
80
@Override
81
public
void
onPageFinished(WebView
view,Stringurl){
82
super
.onPageFinished(view,
url);
83
84
}
85
@Override
86
public
void
onReceivedError(WebView
view,
int
errorCode,String
description,StringfailingUrl){
87
super
.onReceivedError(view,
errorCode,description,failingUrl);
88
}
89
}
90
91
}
TestWebView如下:

01
package
cn.testwebview;
02
03
import
android.content.Context;
04
import
android.util.AttributeSet;
05
import
android.webkit.WebView;
06
07
public
class
TestWebView
extends
WebView
{
08
public
ScrollInterface
mScrollInterface;
09
10
public
TestWebView(Context
context){
11
super
(context);
12
}
13
14
public
TestWebView(Context
context,AttributeSetattrs,
int
defStyle)
{
15
super
(context,
attrs,defStyle);
16
}
17
18
public
TestWebView(Context
context,AttributeSetattrs){
19
super
(context,
attrs);
20
}
21
22
@Override
23
protected
void
onScrollChanged(
int
l,
int
t,
int
oldl,
int
oldt)
{
24
25
super
.onScrollChanged(l,
t,oldl,oldt);
26
27
mScrollInterface.onSChanged(l,
t,oldl,oldt);
28
29
}
30
31
public
void
setOnCustomScroolChangeListener(ScrollInterface
scrollInterface){
32
33
this
.mScrollInterface
=scrollInterface;
34
35
}
36
37
public
interface
ScrollInterface
{
38
39
public
void
onSChanged(
int
l,
int
t,
int
oldl,
int
oldt);
40
41
}
42
43
}
main.xml如下:

查看源码

打印?

01
<
RelativeLayout
02
xmlns:android
=
"http://schemas.android.com/apk/res/android"
03
xmlns:tools
=
"http://schemas.android.com/tools"
04
android:layout_width
=
"match_parent"
05
android:layout_height
=
"match_parent"
06
>
07
08
<
cn.testwebview.TestWebView
09
android:id
=
"@+id/webView"
10
android:layout_width
=
"fill_parent"
11
android:layout_height
=
"fill_parent"
12
android:text
=
"@string/hello_world"
13
android:layout_centerInParent
=
"true"
14
/>
15
16
</
RelativeLayout
>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: