我在我的应用程序中使用自定义 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);
}
}
}
}
由于 克里什
答案 0 :(得分:0)
我认为原因可能是手势检测器在ViewPager和WebView之间发生了冲突。您应该在子视图中覆盖onInterceptTouch()和onTouch()方法,并根据您的需要在子级或父级中调用requestDisallowInterceptTouchEvent(boolean flag)方法。