ViewPager中的WebViews并不总是更新

时间:2015-04-21 13:51:47

标签: android android-fragments webview android-viewpager

我有下一个场景

具有FrameLayout的活动。在FrameLayout中,我使用replace

加载片段
android.support.v4.app.Fragment contentToLoad = null;
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

...get the proper fragment depending of some logic 
contentToLoad = new FragmentDemoContent();

fragmentTransaction.replace(R.id.fl_contentcontainer, contentToLoad);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

其中一个片段包含一个ViewPager和一个SlidingTabLayout(从https://github.com/codepath/android_guides/wiki/Google-Play-Style-Tabs-using-SlidingTabLayout复制)

在ViewPager内部,我将其他片段作为页面加载,每个片段都是一个从资源加载本地内容的WebView。适配器扩展了FragmentPagerAdapter

当我第一次加载这个片段时,一切正常,我可以滑动并加载所有页面。但是如果我加载其他片段并且我再次使用ViewPager加载片段,我会得到随机空白页,有时是第一个,有时是其他人。有时当我向后滑动时,会出现前一个空白页面,但并不总是

我试过了,没有运气:

  1. 检查它是否是WebView问题。它不是,使用而不是 带有webviews的片段空白默认片段只需一个 textview,我也得到随机的空白页。
  2. 在每次滚动或页面更改后,视图,寻呼机...无效
  3. 此方法ViewPager PagerAdapter not updating the View
  4. 设置http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit%28int%29 加载所有页面
  5. 我们可以尝试任何想法或事物吗?

2 个答案:

答案 0 :(得分:1)

我弄明白了这个问题。在子片段中,我们使用getSupportFragmentManager而不是getChildFragmentManager。更换后它可以正常工作。

答案 1 :(得分:0)

Webview有渲染问题,加载需要时间,你可以使用带有

的textView
myTextView.setText(Html.fromHtml("your html text"));