Android 中怎么判断WebView已经滑动到底部或顶部还在滑动类似上拉刷新下来加载更多.
如题,只需要提供判断思路就好了布局之类的不用考虑.我就是不知道怎么判断才算已经滑动到顶部或底部了还在滑动.比如刚刚滚动到底部或底部时不做任何事,当已经在底部或顶部了还在滑...
如题,只需要提供判断思路就好了布局之类的不用考虑. 我就是不知道怎么判断才算已经滑动到顶部或底部了还在滑动.
比如刚刚滚动到底部或底部时不做任何事,当已经在底部或顶部了还在滑动的那种. 展开
比如刚刚滚动到底部或底部时不做任何事,当已经在底部或顶部了还在滑动的那种. 展开
2015-11-14 · 知道合伙人软件行家
关注
展开全部
我们需要重写webview的滑动方法,自定义一个webview: FoundWebView(可自由命名)代码如下
package com.paoyx.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;
/** * 重新webview
* @author paoyx */
public class FoundWebView extends WebView {
ScrollInterface web;
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);
web.onSChanged(l, t, oldl, oldt);
}
public void setOnCustomScroolChangeListener(ScrollInterface t){ this.web=t;
}
/**
* 定义滑动接口
* @param t
*/
public interface ScrollInterface {
public void onSChanged(int l, int t, int oldl, int oldt) ;
}}
在activity的onCreate方法中调用该webview,代码如下:
private FoundWebView mWebView;
mWebView = (FoundWebView)findViewById(R.id.mWebView);
mWebView.setOnCustomScroolChangeListener(new ScrollInterface() {
@Override
public void onSChanged(int l, int t, int oldl, int oldt) {
// TODO Auto-generated method stub
float webcontent = mWebView.getContentHeight()*mWebView.getScale();//webview的高度
float webnow = mWebView.getHeight()+ mWebView.getScrollY();//当前webview的高度
if( mWebView.getContentHeight()* mWebView.getScale() -( mWebView.getHeight()+ mWebView.getScrollY())==0){
//已经处于底端
lay_bottom_layout.setVisibility(View.VISIBLE);
}else {
lay_bottom_layout.setVisibility(View.GONE);
}
//已经处于顶端
if (mWebView.getScaleY() == 0) {
}
}});
END
package com.paoyx.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;
/** * 重新webview
* @author paoyx */
public class FoundWebView extends WebView {
ScrollInterface web;
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);
web.onSChanged(l, t, oldl, oldt);
}
public void setOnCustomScroolChangeListener(ScrollInterface t){ this.web=t;
}
/**
* 定义滑动接口
* @param t
*/
public interface ScrollInterface {
public void onSChanged(int l, int t, int oldl, int oldt) ;
}}
在activity的onCreate方法中调用该webview,代码如下:
private FoundWebView mWebView;
mWebView = (FoundWebView)findViewById(R.id.mWebView);
mWebView.setOnCustomScroolChangeListener(new ScrollInterface() {
@Override
public void onSChanged(int l, int t, int oldl, int oldt) {
// TODO Auto-generated method stub
float webcontent = mWebView.getContentHeight()*mWebView.getScale();//webview的高度
float webnow = mWebView.getHeight()+ mWebView.getScrollY();//当前webview的高度
if( mWebView.getContentHeight()* mWebView.getScale() -( mWebView.getHeight()+ mWebView.getScrollY())==0){
//已经处于底端
lay_bottom_layout.setVisibility(View.VISIBLE);
}else {
lay_bottom_layout.setVisibility(View.GONE);
}
//已经处于顶端
if (mWebView.getScaleY() == 0) {
}
}});
END
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询