1. implement a custom ViewPager Instance like this:

import android.content.Context; <br> import android.support.v4.view.ViewPager; <br> import android.util.AttributeSet; <br> import android.util.Log; <br> import android.view.MotionEvent; public class CustomViewPager extends ViewPager {   private MagazineWebView_WithoutFlipWebView mCurrentPageWebView_; //custom webview   public CustomViewPager(Context context, AttributeSet attrs) {     super(context, attrs);   }   @Override   public boolean onInterceptTouchEvent(MotionEvent event) {     if (Constants.LOGGING) {       Log.v(Constants.LOG_OEAMTC_APP, "CustomViewPager - onInterceptTouchEvent");     }     // if view zoomed out (view starts at 33.12... scale level) ... allow     // zoom within webview, otherwise disallow (allow viewpager to change     // view)     if (mCurrentPageWebView_ != null && (mCurrentPageWebView_.getScale() * 100) > 34) {<br>       Log.v(Constants.LOG_OEAMTC_APP, "CustomViewPager - intrcepted: " + String.valueOf((mCurrentPageWebView_.getScale() * > 100)));<br>       this.requestDisallowInterceptTouchEvent(true);     }     else {       if (mCurrentPageWebView_ != null) {         Log.v(Constants.LOG_OEAMTC_APP,             "CustomViewPager - not intrcepted: " + String.valueOf(mCurrentPageWebView_.getScale() * 100));       }       this.requestDisallowInterceptTouchEvent(false);     }     return super.onInterceptTouchEvent(event);   }   public MagazineWebView_WithoutFlipWebView getCurrentPageWebView() {     return mCurrentPageWebView_;   }   public void setCurrentPageWebView(MagazineWebView_WithoutFlipWebView currentPageWebView) {     mCurrentPageWebView_ = currentPageWebView;   } } 

2. in your main (ViewPager) Activity add the following lines to the view pager

mViewPager_ = new AwesomePagerAdapter();<br>     viewpapgerInLayout = (CustomViewPager) findViewById(R.id.awesomepager);<br>     viewpapgerInLayout.setAdapter(mViewPager_);<br>     viewpapgerInLayout.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {<br>             @Override       public void onPageSelected(int position) {          viewpapgerInLayout.setCurrentPageWebView(mLstPagesWebviews_.get(position));       }       @Override       public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {       }       @Override       public void onPageScrollStateChanged(int state) {       }     }); 

3. finally, run it :=) if the zoom level is at initial zoom, changes pages is allowed, all the other time you can navigate your web view

Ps.: *Don't forget* to change your ViewPager in your *.xml file with the CustomViewPager Class you just created

good luck :)

share | edit | flag edited Jul 26 at 13:17 Asok
376 10
answered Jan 20 at 15:12 cV2
631 4 14

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 在Android上使用离子崩溃而不是ios构建的
  2. javascript如何取字符串中的数字
  3. js读写文件(ActiveXObject只支持ie7以前
  4. 使用AJAX根据Codeigniter中的下拉值获取
  5. 11、javascript中字符串常用操作总结、JS
  6. Angular JS复选框 - 模型不默认为false
  7. RegExp:匹配除Javascript中的正则表达式值
  8. 前台 post方法提交却变成了 get 方法
  9. JavaScript的two-sum问题解法
  10. 我可以禁用“后退”按钮浏览器功能吗?