0

我正在开发一个应用程序,我在不同的网页视图中显示不同的网页。目前,我正在使用下一个和上一个按钮分别转到下一页和上一页。

但我想添加滑动手势以转到下一页和上一页。我的意思是当用户从右向左滑动时,下一页应该打开,当用户从左向右滑动时,上一页应该打开。(如电子书阅读器)

我已经在谷歌上尝试并搜索过,但我发现幻灯片效果只在 imageview 上,而不是在 webview 上。

请指导我,如何在网页视图中使用手势从当前页面移动到下一页或上一页。

4

2 回答 2

0

您必须覆盖标准 WebView 才能覆盖触摸事件方法。在这个答案中,您可以找到一个示例。

于 2013-06-21T12:55:07.357 回答
0

我希望这对你有用。

private class CustomeGestureDetector extends SimpleOnGestureListener 
    {      
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            if(e1 == null || e2 == null) 
                return false;
            if(e1.getPointerCount() > 1 || e2.getPointerCount() > 1) 
                return false;
            else 
            {
                try 
                { 
                    // right to left swipe .. go to next page
                    if(e1.getX() - e2.getX() > 100 && Math.abs(velocityX) > 800) 
                    {
                        if((pg_no-1) == cpg_no)
                        {
                            cpg_no = 0 ;
                            if(contentDetails.size() > (page_no+2))
                                page_no++ ;
                        }
                        else
                        {
                            cpg_no++;
                        }
                        onPageTurn();
                        Log.e(" right turn ", "go to next page");
                        //do your stuff
                        return true;
                    } //left to right swipe .. go to prev page
                    else if (e2.getX() - e1.getX() > 100 && Math.abs(velocityX) > 800) 
                    {
                        if(0 < (page_no))
                            page_no-- ;
                        onPageTurn();
                        Log.e(" left turn ", "go to prev page");
                        //do your stuff
                        return true;
                    } //bottom to top, go to next document
                    else if(e1.getY() - e2.getY() > 100 && Math.abs(velocityY) > 800 && webview.getScrollY() >= webview.getScale() * (webview.getContentHeight() - webview.getHeight())) 
                    {
                        //do your stuff
                        return false;
                    } //top to bottom, go to prev document
                    else if (e2.getY() - e1.getY() > 100 && Math.abs(velocityY) > 800 ) 
                    {
                        //do your stuff
                        return false;
                    } 
                } 
                catch (Exception e) 
                { 
                    // nothing
                }
                return false;
            }
        }
    }
于 2014-02-25T11:48:20.373 回答