Java 仅限于上半部分的布局限制
我设法在swiperefreshlayout包装器中加载了一个webview,但是我的webview的第一部分是一个可向上/向下滚动的html div。因此,当向下滚动时,滑动刷新布局将起作用。我可以将滑动刷新布局限制在屏幕的第一季度吗Java 仅限于上半部分的布局限制,java,android,Java,Android,我设法在swiperefreshlayout包装器中加载了一个webview,但是我的webview的第一部分是一个可向上/向下滚动的html div。因此,当向下滚动时,滑动刷新布局将起作用。我可以将滑动刷新布局限制在屏幕的第一季度吗 首先,您需要在WebView中广播滚动更改。例如,通过将扩展名与回调一起使用,并通知更改和更新 public class ObservableWebView extends WebView { private OnScrollChangedCallbac
首先,您需要在WebView中广播滚动更改。例如,通过将扩展名与回调一起使用,并通知更改和更新
public class ObservableWebView extends WebView
{
private OnScrollChangedCallback mOnScrollChangedCallback;
public ObservableWebView(final Context context)
{
super(context);
}
public ObservableWebView(final Context context, final AttributeSet attrs)
{
super(context, attrs);
}
public ObservableWebView(final Context context, final AttributeSet attrs, final int defStyle)
{
super(context, attrs, defStyle);
}
@Override
protected void onScrollChanged(final int l, final int t, final int oldl, final int oldt)
{
super.onScrollChanged(l, t, oldl, oldt);
if(mOnScrollChangedCallback != null) mOnScrollChangedCallback.onScroll(l, t, oldl, oldt);
}
public OnScrollChangedCallback getOnScrollChangedCallback()
{
return mOnScrollChangedCallback;
}
public void setOnScrollChangedCallback(final OnScrollChangedCallback onScrollChangedCallback)
{
mOnScrollChangedCallback = onScrollChangedCallback;
}
/**
* Implement in the activity/fragment/view that you want to listen to the webview
*/
public static interface OnScrollChangedCallback
{
public void onScroll(int l, int t, int oldl, int oldt);
}
}
然后,只需聆听特定阈值的更改,即可启用禁用SwipeToRefreshLayout
。如下面的示例所示
wv = (ObservableWebView) findViewById(R.id.scorllableWebview);
wv.setOnScrollChangedCallback(new OnScrollChangedCallback() {
public void onScroll(int l, int t, int oldl, int oldt) {
if (t> oldt) {
Timber.d("Swipe UP");
// Check if it's top page, knowing height of the items
// and enable swipe to refresh
swipeToRefresh.setEnabled(true);
}
else if (t< oldt) {
Timber.d("Swipe Down");
// Again if scrolled enough to bottom, disable again
swipeToRefresh.setEnabled(false);
}
Timber.d("Scrolling....");
}
});
wv=(observeWebView)findViewById(R.id.scorlableWebView);
wv.setOnScrollChangedCallback(新的OnScrollChangedCallback(){
Croll上的公共void(int l,int t,int oldl,int oldt){
如果(t>oldt){
木材d(“刷起”);
//检查是否是首页,知道项目的高度
//并启用滑动刷新
swipeToRefresh.setEnabled(true);
}
else if(t
我的意思是添加一些代码,这太宽泛了。谢谢@GensaGames,我将setOnScrollChangedCallback添加到MainActivity java文件中,但是我应该在哪里添加ObservableWebView类?是否与主活动位于同一文件夹中?