Disabling amp; Enabling Paging In ViewPager in Android(禁用和在 Android 的 ViewPager 中启用分页)
问题描述
我正在使用 android 兼容包版本 4 在我的应用程序中显示 pdf 页面.我用过 PagerAdapter &ViewPager 用于显示 pdf 页面,如水平滚动视图.
I am using android compatibility package version 4 for displaying pdf pages in my app. I have used PagerAdapter & ViewPager for displaying pdf pages like horizontal scroll view.
现在问题出在与分页相关的东西上.我可以根据这个线程通过检测 viewpager 内的子项来停止分页 android:ViewPager 和 HorizontalScrollVIew,但是当用户在该视图之外触摸时,我怎样才能启用它.我为 CustomViewPager 使用了以下代码.
Now the problem is in paging related stuff.I am able to stop paging by detecting childs inside the viewpager according to this thread android: ViewPager and HorizontalScrollVIew, but how can I can enable that back when user touches outside of that view. I have used following code for CustomViewPager.
public class CustomViewPager extends ViewPager {
        private boolean enabled;
        private int childId;
        public CustomViewPager(Context context, AttributeSet attrs) {
            super(context, attrs);
            this.enabled = true;
        }
        public void setChildId(int childId) {
            this.childId = childId;
        }
        @Override
        public boolean onInterceptTouchEvent(MotionEvent event) {
            boolean result = false;
            View scroll = getChildAt(childId);
            if (scroll != null) {
                Rect rect = new Rect();
                CommonLogic.logMessage("PDF Page Rectangle  ", TAG, Log.VERBOSE);
                scroll.getHitRect(rect);
                if (rect.contains((int) event.getX(), (int) event.getY())) {
                    setPagingEnabled(false);
                    result = true;
                }
            }
            return result;
        }
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if (this.enabled) {
                return super.onTouchEvent(event);
            }
            return false;
        }
        public void setPagingEnabled(boolean enabled) {
            this.enabled = enabled;
        }
    }
当尝试触摸 pdf 页面外部时,if(scroll!=null) 在两个方向都变为 true.
When try to touch outside the pdf page then also that if(scroll!=null) becomes true in both orientation.
谁能帮我弄清楚如何重新启用它,以便在 ViewPager 中继续分页.
Can any one help me out how to enable it back so that paging will continue in ViewPager.
推荐答案
我在分页图像文件时遇到了类似的问题,需要捏合缩放.简单地说,需要一种在放大图像时禁用分页并在显示整个图像时启用它的方法.我像这样解决了它,并认为你可以做类似的事情.首先扩展:类 MyViewPager 扩展 ViewPager {...}然后在该类中覆盖以下两个方法
I was having a similar problem with paging image files that need pinch to zoom. Simply put Needing a way to disable paging when image is zoomed in and enable it when the whole image is shown. I solved it like this and think you could do a similar thing. First extend : class MyViewPager extends ViewPager {...} And then in that class override following two methods
    @Override
public boolean onTouchEvent(MotionEvent event) {
    if (YOUR_CRITERIA_TOENABLE_DISABLE) {
        return true;
    } else {
        return super.onTouchEvent(event);
    }
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    return super.onInterceptTouchEvent(event);
}
请务必在 xml 布局或从代码动态创建中使用您的视图分页器.
Be sure to use your view pager in xml layouts or dynamic creation from code.
这篇关于禁用和在 Android 的 ViewPager 中启用分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:禁用和在 Android 的 ViewPager 中启用分页
 
				
         
 
            
        基础教程推荐
- 使用 Ryzen 处理器同时运行 WSL2 和 Android Studio 2022-01-01
- LocationClient 与 LocationManager 2022-01-01
- 如何使 UINavigationBar 背景透明? 2022-01-01
- 固定小数的Android Money Input 2022-01-01
- 如何使用 YouTube API V3? 2022-01-01
- “让"到底是怎么回事?关键字在 Swift 中的作用? 2022-01-01
- Android ViewPager:在 ViewPager 中更新屏幕外但缓存的片段 2022-01-01
- Android文本颜色不会改变颜色 2022-01-01
- :hover 状态不会在 iOS 上结束 2022-01-01
- 在 iOS 上默认是 char 签名还是 unsigned? 2022-01-01
 
    	 
    	 
    	 
    	 
    	 
    	 
    	 
    	 
				 
				 
				 
				