2014-12-08 141 views
2

我有一个主要活动,其中包含一个框架布局和4个选项卡按钮,并且共有4个片段,每个片段都与一个选项卡按钮相关,具体取决于哪个选项卡按钮被点击,相应的片段将被交换到框架布局来替换旧的。现在在每个片段中都有一个web视图,在创建片段时加载不同的URL。我的问题是如何防止从webview重新加载每次碎片交换时?下面是怎样的代码我换我的片段:Android阻止webview重新加载片段

FragmentMainPage fragment = new FragmentMainPage(); 
android.support.v4.app.FragmentManager fm = getSupportFragmentManager(); 
FragmentTransaction transaction = fm.beginTransaction(); 
transaction.replace(R.id.frameLayout, fragment); 
transaction.commit(); 
currentPage = VT_Constants.HOME_PAGE; 

回答

1

调用取而代之的是破坏性的:它拆毁片段的视图层次结构,所以当你添加回来后,意见必须重建,这说明了其行为你正在看。

尝试显示并隐藏。这些维护片段的视图,因此当用户单击该片段的选项卡时,它们可以重新附加到您的活动。像这样的东西(虽然我不确定你想如何得到当前片段的引用):

FragmentMainPage fragment = new FragmentMainPage(); 
android.support.v4.app.FragmentManager fm = getSupportFragmentManager(); 
Fragment oldFragment = fm.findFragmentByTag(...); // somehow get the current fragment showing 
FragmentTransaction transaction = fm.beginTransaction(); 
transaction.hide(oldFragment); 
transaction.show(fragment); 
transaction.commit(); 
+0

不知怎的,我似乎无法通过它的标签检索oldFragment ...所以我通过采用viewPager使用了另一种替代方法。 – dulan 2014-12-08 10:53:14

0

你可以设置页面限制。

viewPager.setOffscreenPageLimit(4);

网页视图不会再重新加载。

相关问题