ScrollView内嵌套 WebView WebView 拦截滚动事件问题
2016-03-31 00:00
471 查看
问题描述:
为了满足文本描述样式多样性,支持富文本展示,想到了好快多省的WebView,
该区域位于ScrollView中,但是当滑动到WebView中,滑动就不再会起作用。
解决思路:
自定义继承WebView,监听滚动,拿到滚动距离,在回调中将滚动距离作用到外层的scrollview上。
具体实现:
自定义PowerWebView:
import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;
public class PowerWebView extends WebView {
调用伪代码
public class XXFragment extends Fragment implements OnScrollChangedCallback{
…
productWebView.setOnScrollChangedCallback(this);
…
总结:
比较蛋疼的解决方式,目前还没有发现更好的方式,有更好的处理方式望伙伴们告知。
为了满足文本描述样式多样性,支持富文本展示,想到了好快多省的WebView,
该区域位于ScrollView中,但是当滑动到WebView中,滑动就不再会起作用。
解决思路:
自定义继承WebView,监听滚动,拿到滚动距离,在回调中将滚动距离作用到外层的scrollview上。
具体实现:
自定义PowerWebView:
import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;
public class PowerWebView extends WebView {
private OnScrollChangedCallback mOnScrollChangedCallback; public PowerWebView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); // TODO Auto-generated constructor stub } public PowerWebView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public PowerWebView(Context context) { super(context); // TODO Auto-generated constructor stub } public void setOnScrollChangedCallback( final OnScrollChangedCallback onScrollChangedCallback) { mOnScrollChangedCallback = onScrollChangedCallback; } public static interface OnScrollChangedCallback { public void onScroll(int deltaY); } @Override public boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { if (mOnScrollChangedCallback != null) { mOnScrollChangedCallback.onScroll(deltaY); } return true; }}
调用伪代码
public class XXFragment extends Fragment implements OnScrollChangedCallback{
…
productWebView.setOnScrollChangedCallback(this);
…
@Override public void onScroll(int deltaY) { // TODO Auto-generated method stub int y = s_view.getScrollY()+deltaY; s_view.smoothScrollTo(0, y); }}
总结:
比较蛋疼的解决方式,目前还没有发现更好的方式,有更好的处理方式望伙伴们告知。
相关文章推荐
- Metaio in Unity3d 教学--- 四.再谈谈图片扫描之tracking配置文件
- Metaio in Unity3d 教学--- 四.再谈谈图片扫描之tracking配置文件
- android 代码设置图片自适应屏幕
- android 代码设置图片自适应屏幕
- Android WebView 显示不正常
- Android WebView 显示不正常
- Android Studio cvs 状态颜色
- Android Android SDK 使用镜像更新
- Android Studio cvs 状态颜色
- Android Android SDK 使用镜像更新
- Android 瀑布流StaggeredGridView 部分手机只显示第一行item问题
- IOS 动画效果
- Android 瀑布流StaggeredGridView 部分手机只显示第一行item问题
- IOS 动画效果
- Android 任意Activity 完全退出程序
- Android 任意Activity 完全退出程序
- android 正则检测用户名 密码 邮箱
- android 正则检测用户名 密码 邮箱
- android XML 画图
- android XML 画图