MainActivity如下:

package cn.testwebview;import android.app.Activity;import android.graphics.Bitmap;import android.os.Bundle;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import cn.testwebview.TestWebView.ScrollInterface;/** * Demo描述: * 监听WebView滑动到底部 *  * 参考资料: * 1 http://blog.csdn.net/conant1989/article/details/8124582 *   Thank you very much */public class MainActivity extends Activity {    private TestWebView mTestWebView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initWebView();}//设置WebViewprivate void initWebView() {mTestWebView = (TestWebView) findViewById(R.id.webView);mTestWebView.setVerticalScrollBarEnabled(true);mTestWebView.setHorizontalScrollBarEnabled(false);mTestWebView.getSettings().setSupportZoom(true);mTestWebView.getSettings().setBuiltInZoomControls(true);mTestWebView.getSettings().setJavaScriptEnabled(true);mTestWebView.getSettings().setDomStorageEnabled(true);mTestWebView.getSettings().setPluginsEnabled(true);mTestWebView.requestFocus();mTestWebView.getSettings().setUseWideViewPort(true);mTestWebView.getSettings().setLoadWithOverviewMode(true);mTestWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);mTestWebView.loadUrl("http://www.ifeng.com");mTestWebView.setWebViewClient(new TestWebViewClient());webViewScroolChangeListener();}//核心代码private void webViewScroolChangeListener() {mTestWebView.setOnCustomScroolChangeListener(new ScrollInterface() {@Overridepublic void onSChanged(int l, int t, int oldl, int oldt) {//WebView的总高度float webViewContentHeight=mTestWebView.getContentHeight() * mTestWebView.getScale();//WebView的现高度float webViewCurrentHeight=(mTestWebView.getHeight() + mTestWebView.getScrollY());System.out.println("webViewContentHeight="+webViewContentHeight);System.out.println("webViewCurrentHeight="+webViewCurrentHeight);if ((webViewContentHeight-webViewCurrentHeight) == 0) {System.out.println("WebView滑动到了底端");}}});}    private class TestWebViewClient extends WebViewClient{@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);}@Overridepublic void onReceivedError(WebView view, int errorCode,String description, String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);}}   }


TestWebView如下:

package cn.testwebview;import android.content.Context;import android.util.AttributeSet;import android.webkit.WebView;public class TestWebView extends WebView {public ScrollInterface mScrollInterface;public TestWebView(Context context) {super(context);}public TestWebView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}public TestWebView(Context context, AttributeSet attrs) {super(context, attrs);}@Overrideprotected void onScrollChanged(int l, int t, int oldl, int oldt) {super.onScrollChanged(l, t, oldl, oldt);mScrollInterface.onSChanged(l, t, oldl, oldt);}public void setOnCustomScroolChangeListener(ScrollInterface scrollInterface) {this.mScrollInterface = scrollInterface;}public interface ScrollInterface {public void onSChanged(int l, int t, int oldl, int oldt);}}


main.xml如下:

<RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"  >    <cn.testwebview.TestWebView        android:id="@+id/webView"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:text="@string/hello_world"        android:layout_centerInParent="true"    /></RelativeLayout>


更多相关文章

  1. Android处理scrollciew里嵌套ExpandableListView的滑动事件
  2. Android利用反射获取状态栏(StatusBar)高度
  3. Android代码实现飞行模式的打开
  4. Android上下与左右滑动事件处理
  5. Android沉浸式状态栏三种方式的实现
  6. android 監聽系統屬性變化的方法
  7. android获取手机屏幕的宽度及高度
  8. 改变 Android(安卓)EditText 的边框
  9. Android(安卓)Activity设置全屏

随机推荐

  1. 程序中如何获取Android的Root权限
  2. Android文件下载使用Http协议
  3. 实习入职第十六天:android:ellipsize="end"
  4. [RK3399] [Android(安卓)9.0] 调试2560x1
  5. android中JSON的使用
  6. android中shape的使用(android:angle小解)
  7. ionic 发布android,并查看签名文件。
  8. Android的低级错误
  9. android默认输入法设置
  10. Android(安卓)Usb源码分析