【问题标题】:WebViews inside ViewPager not always updatingViewPager 中的 WebViews 并不总是更新
【发布时间】:2015-04-21 13:51:47
【问题描述】:

我有下一个场景

带有 FrameLayout 的活动。在 FrameLayout 中,我使用替换加载片段

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 加载所有页面

有什么想法或我们可以尝试的东西吗?

【问题讨论】:

    标签: android android-fragments webview android-viewpager


    【解决方案1】:

    我发现了问题所在。在子片段中,我们使用 getSupportFragmentManager 而不是 getChildFragmentManager。更换后就可以正常使用了。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 正如我所写的,我认为这不是 webview 问题。除此之外,我认为在文本视图中加载网页内容不是一个好主意。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多