我在 (Support)ViewPager 中使用 (Support)MapFragment,由 FragmentPagerAdapter 填充。
ViewPager 由三个片段组成,右边是地图片段:|x|x|map|。当我从第一个片段向右滑动时,随着 MapFragment 的加载和屏幕闪烁,整个 UI 明显重绘。首次加载地图后,在屏幕之间滑动即可正常工作。
我怎样才能解决这个问题?
我在 (Support)ViewPager 中使用 (Support)MapFragment,由 FragmentPagerAdapter 填充。
ViewPager 由三个片段组成,右边是地图片段:|x|x|map|。当我从第一个片段向右滑动时,随着 MapFragment 的加载和屏幕闪烁,整个 UI 明显重绘。首次加载地图后,在屏幕之间滑动即可正常工作。
我怎样才能解决这个问题?
我的项目(相当复杂)结构也有同样的问题:HostActivity -> HostFragment with ViewPager -> ListView with Embedded MapFragment。
我试图在这个 gmaps-api-issues 线程之后解决这个问题,但没有运气(尽管我建议阅读它,因为它提供了问题本身的一些背景知识)。
然后我偶然发现了这篇博文,它对我有用:
public void onCreate(Bundle savedInstanceState) {
...
ViewPager pager = (ViewPager)findViewById(R.id.pager);
...
pager.setAdapter(adapter);
pager.requestTransparentRegion(pager); // This line solved the problem for me
...
}