Android 自定义PagerAdapter,重写连续调用的setPrimaryItem方法
我在应用程序中使用自定义PagerAdapter,因为它覆盖了方法setPrimaryItem。当我通过PagerAdapter使用webview查看html时,setPrimaryItem方法会不断调用。因为html在屏幕上闪烁。有人知道为什么会这样吗 setPrimaryMethod()代码如下:Android 自定义PagerAdapter,重写连续调用的setPrimaryItem方法,android,android-viewpager,fragmentpageradapter,android-pageradapter,Android,Android Viewpager,Fragmentpageradapter,Android Pageradapter,我在应用程序中使用自定义PagerAdapter,因为它覆盖了方法setPrimaryItem。当我通过PagerAdapter使用webview查看html时,setPrimaryItem方法会不断调用。因为html在屏幕上闪烁。有人知道为什么会这样吗 setPrimaryMethod()代码如下: @Override public void setPrimaryItem(ViewGroup container, int position, Object object) {
@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);
}
}
}
}
@覆盖
公共void setPrimaryItem(视图组容器、int位置、对象)
{
super.setPrimaryItem(容器、位置、对象);
ScrollView ScrollView=(ScrollView)对象;
ViewGroup llViewGrp=(LinearLayout)scrollView.getChildAt(0);
View=llViewGrp.getChildAt(0);
if(查看StudentElementHLView的实例){
List studentElementsEntity=entity.get(position.getElements();
//迭代所有元素并设置元素以保存答案
for(StudentElementEntity元素:StudentElementEntity){
//检查html元素实体
if(StudentElementHtmlEntity的元素实例){
((StudentElementHtmlView)视图).setElement((StudentElementHtmlEntity)元素);
}
}
}
}
谢谢
Krish我认为原因可能是手势检测器在ViewPager和WebView之间发生了碰撞。您应该在子视图中重写onInterceptTouch()和onTouch()方法,并根据需要在子视图或父视图中调用RequestDisallowWinterCeptTouchEvent(布尔标志)方法。有解决方案吗?