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. Lint found fatal errors while assembli
  2. Android(安卓)Retrofit 2.0自定义JSONObj
  3. Android Volley 详解
  4. Android 动画标签——set
  5. android get请求数据
  6. android之监听手机来电状态
  7. Linux ubuntu14.04 LTS 配置 android stu
  8. android apk 升级代码
  9. 如何在Mac/Linux上设置android环境变量
  10. Android(安卓)进入后台触发的事件,一般用