自定义PagerAdapter,覆盖连续调用的setPrimaryItem方法

时间:2014-12-17 06:25:22

标签: android android-viewpager fragmentpageradapter android-pageradapter

我在我的应用程序中使用自定义 PagerAdapter ,重写方法 setPrimaryItem 。当我使用 webview 通过 PagerAdapter 查看html时, setPrimaryItem 方法会持续调用。因为html在屏幕上闪烁。有谁知道它为什么会这样?

下面的setPrimaryMethod()代码:

@Override
    public void setPrimaryItem(ViewGroup container, int position, Object object) 
    {
        super.setPrimaryItem(container, position, object);

        ScrollView scrollView = (ScrollView) object;
        ViewGroup llViewGrp = (LinearLayout)scrollView.getChildAt(0);
        View view = llViewGrp.getChildAt(0);

        if (view instanceof StudentElementHtmlView) {
            List<StudentElementEntity> studentElementsEntity = entity.get(position).getElements();

            //iterate through all elements and set the element to save the answer
            for (StudentElementEntity element : studentElementsEntity) {
                //check for the html element entity
                if (element instanceof StudentElementHtmlEntity) {
                    ((StudentElementHtmlView) view).setElement((StudentElementHtmlEntity) element);
                }
            }
        }
    }

由于 克里什

1 个答案:

答案 0 :(得分:0)

我认为原因可能是手势检测器在ViewPager和WebView之间发生了冲突。您应该在子视图中覆盖onInterceptTouch()和onTouch()方法,并根据您的需要在子级或父级中调用requestDisallowInterceptTouchEvent(boolean flag)方法。