覆盖缩放 swipetorefresh - Android
Posted
技术标签:
【中文标题】覆盖缩放 swipetorefresh - Android【英文标题】:Override zoom over swipetorefresh - Android 【发布时间】:2016-06-27 17:17:52 【问题描述】:好的,所以如果我滚动了一点并且滑动刷新变得可见,并且如果我尝试用两根手指缩放它只会进一步向下刷新。我想要实现的是,如果用户尝试缩放,则滑动刷新将被缩放选项覆盖。这是一些代码。
这是 webView 的简单缩放控件。
myWebView.getSettings().setLoadWithOverviewMode(true);
myWebView.getSettings().setUseWideViewPort(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setDisplayZoomControls(false);
这里来自 SwipeToRefresh:
mySwipeRefreshLayout.setOnRefreshListener(
new SwipeRefreshLayout.OnRefreshListener()
@Override
public void onRefresh()
myWebView.reload();
);
我有mySwipeRefreshLayout.setRefreshing(true);
和mySwipeRefreshLayout.setRefreshing(false);
,这取决于我想在哪里使用它们。有什么建议吗?
【问题讨论】:
【参考方案1】:我遇到了同样的问题,我用下一个成功解决了:
创建从 SwipeRefreshLayout 扩展的新类
public class SwipeToRefresh extends SwipeRefreshLayout
private static final float REFRESH_RATE = 10f;
private float mDownX, mDownY, scaleX, scaleY;
public SwipeToRefresh(Context context)
super(context);
public SwipeToRefresh(Context context, AttributeSet attrs)
super(context, attrs);
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
switch (ev.getAction())
case MotionEvent.ACTION_DOWN:
mDownX = ev.getX();
mDownY = ev.getY();
break;
case MotionEvent.ACTION_MOVE:
return doRefresh(ev);
case MotionEvent.ACTION_UP:
return doRefresh(ev);
return super.onInterceptTouchEvent(ev);
private boolean doRefresh(MotionEvent ev)
scaleX = Math.abs(ev.getX() - mDownX);
scaleY = Math.abs(ev.getY() - mDownY);
if (scaleY / scaleX > REFRESH_RATE)
return super.onInterceptTouchEvent(ev);
else
return false;
活动中
SwipeToRefresh mSwipeRefreshLayout = (SwipeToRefresh) findViewById(R.id.my_refresh_layout);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener()
@Override
public void onRefresh()
// Refresh WebView
);
不要忘记在布局中更改类名
<com.example.package.SwipeToRefresh
android:id="@+id/my_refresh_layout"
android:layout_
android:layout_>
<WebView
android:id="@+id/webView"
android:layout_
android:layout_
android:layout_alignParentStart="true" />
</com.example.package.SwipeToRefresh>
祝你好运!
【讨论】:
这是一个很大的改进,但捏缩放并不会覆盖滑动刷新。如果圆圈在屏幕上并且您尝试缩放它只是向上或向下移动。.跨度> 好主意。谢谢:)以上是关于覆盖缩放 swipetorefresh - Android的主要内容,如果未能解决你的问题,请参考以下文章
可以使用带有覆盖 div 的 iscroll 捏合/缩放吗?