使用控件:viewpager,webview
期望达到效果:webView嵌套在viewpager中。
webview可以自由滑动,在webview滑动到最右端或最左端时,切换至下一个页面。
目前解决进度:
将viewpager的onInterceptTouchEvent横向滑动事件传递至子view(webview)中,可以使webview自由滑动。
在webview达到末尾时将其横向滑动禁止,传递给上层viewpager,这样就可以切换至下一屏遇到问题:
1、 无法及时获知webview是否已经达到最右端或最左端
2、无法获取webview的宽度
3、webview中的getScrollX()方法有时会出现延时赋值的情况---即我在ACTION_MOVE中调用该方法时,会出现前后两次返回值相同的情况(页面横向坐标已经发生位移)
4、为什么computeHorizontalScrollOffset,computeHorizontalScrollRange(),computeHorizontalScrollExtent()这几个方法在滑动过程中返回的值都不变呢,与APi的解释不符合啊 该问题已经耽误一个星期了,跪求大侠指教。
如果各位有其它解决思路,也请大家集思广益,多谢~
期望达到效果:webView嵌套在viewpager中。
webview可以自由滑动,在webview滑动到最右端或最左端时,切换至下一个页面。
目前解决进度:
将viewpager的onInterceptTouchEvent横向滑动事件传递至子view(webview)中,可以使webview自由滑动。
在webview达到末尾时将其横向滑动禁止,传递给上层viewpager,这样就可以切换至下一屏遇到问题:
1、 无法及时获知webview是否已经达到最右端或最左端
2、无法获取webview的宽度
3、webview中的getScrollX()方法有时会出现延时赋值的情况---即我在ACTION_MOVE中调用该方法时,会出现前后两次返回值相同的情况(页面横向坐标已经发生位移)
4、为什么computeHorizontalScrollOffset,computeHorizontalScrollRange(),computeHorizontalScrollExtent()这几个方法在滑动过程中返回的值都不变呢,与APi的解释不符合啊 该问题已经耽误一个星期了,跪求大侠指教。
如果各位有其它解决思路,也请大家集思广益,多谢~
解决方案 »
- android开发的sdcard权限问题和一个很诡异的错误,调试了3个小时......要疯了,真心没有招了,拜托大家好心帮帮我吧
- android 调用webservice问题
- 有个功能一直实现不了,望大拿们帮帮忙啊。。
- 玩过Android完美钢琴或其他乐曲的进来帮忙看看~~
- AlertDialog.Builder listview SimpleCursorAdapter删除项问题
- activty转换
- android 通话记录问题
- 如何使用adb命令查询sqlite数据库中的内容?
- Activity 启动一个死循环线程无响应
- android平板屏幕同步速度问题
- android apk自动升级之后安装完成 打开崩溃时怎么回事
- 新手问题求解答~
请问您有可行的方法或思路吗,thx~~
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (getScrollX()<0) {
LogUtil.w(TAG, "WifiCustomWebView---> getScrollX <= 0");
// touchLayout.getParent().requestDisallowInterceptTouchEvent(false);
return false;
} else if (getScrollX() >= computeHorizontalScrollRange()) { //- getWidth()
LogUtil.w(TAG, "WifiCustomWebView---> getScrollX >= computeHorizontalScrollRange()");
return false;
} else {
LogUtil.w(TAG, "WifiCustomWebView---> true");
touchLayout.getParent().requestDisallowInterceptTouchEvent(true); //子view中,可以中断pager获取到事件
return true;
}
// return super.onInterceptTouchEvent(ev);
}