现在我正在使用Jake Wharton的ViewPagerIndicator库。我在其中添加了几个Fragments
,可以来回滑动。如果我从Fragment
远离多个面板,则会将其删除(onDestroyView()
调用)。相反,如果我在Fragment
的一个面板中滑动,则会重新添加(onCreateView()
调用)。
当我的Fragment
被销毁/再次添加时,曾经存在的Views
被销毁,我又回到了空白屏幕。我在LinearLayout
中添加了Fragment
TextViews
。在重新创建.size()
时调用LinearLayout
会显示正确的计数,但我无法确定要调用的内容以便再次显示它。我已尝试在<LinearLayout>.requestLayout()
中添加onResume()
,但这不起作用。
如果我发布任何相关代码,请告诉我。我不认为这对我的片段有任何特殊性。
编辑:所以最初我认为我必须处理onSavedInstanceState()
,但我以前从未保存过整个布局。我的另一个想法是迭代我的LinkedList
TextViews
,然后将它们添加回我的LinearLayout
。这给了我一个错误,View
已经有了父母,这是有道理的。
以下是我添加TextView的方法:
public void addQuickLook(QuickLookView v)
{
mViews2.add(v); //LinkedList of QuickLookViews
mMeterLayout.addView(v); //Adding to the LinearLayout
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.fragment_quicklook, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
mMeterLayout = (LinearLayout) getActivity().findViewById(R.id.quickLookList);
}
答案 0 :(得分:3)
我想我已经解决了这个问题。我所做的是覆盖了我destroyItem()
中的FragmentPagerAdapter
方法,并将其留空。我应该更仔细地阅读FragmentPagerAdapter
的开发人员页面以查看它的预期行为,特别是所有内容都被加载到内存中并且当它不再可见时它会杀死Fragment
的视图以节省内存。不确定这是否是正确的方法,但它现在可以正常工作。