Android 当我重新加载它时,它是空的片段
基本上,我有一个Android 当我重新加载它时,它是空的片段,android,android-fragments,Android,Android Fragments,基本上,我有一个main活动,当单击菜单选项时,它会显示不同的片段 Stats,是一个片段,其中显示4个片段。每次显示时,将替换视图上的4个框架布局 第一次运行得很好,但是当我换成不同的片段并返回Stats时,它似乎没有将FrameLayouts替换为fragments Stats如下所示: public class StatsFragment extends Fragment { private View rootView; private MoreSoldBarChartF
main活动
,当单击菜单选项时,它会显示不同的片段
Stats
,是一个片段
,其中显示4个片段。每次显示时,将替换视图上的4个框架布局
第一次运行得很好,但是当我换成不同的片段并返回Stats时,它似乎没有将FrameLayouts
替换为fragments
Stats
如下所示:
public class StatsFragment extends Fragment {
private View rootView;
private MoreSoldBarChartFragment moreSold = MoreSoldBarChartFragment.newInstance(null);
private MoreIncomeBarChartFragment moreIncome = MoreIncomeBarChartFragment.newInstance(null);
private SoldLineChartFragment soldLine = SoldLineChartFragment.newInstance(null);
private IncomeLineChartFragment incomeLine = IncomeLineChartFragment.newInstance(null);
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_stats, container, false);
initViews();
return rootView;
}
public void initViews() {
replace(moreIncome, R.id.moreIncome);
replace(moreSold, R.id.moreSold);
replace(soldLine, R.id.soldLine);
replace(incomeLine, R.id.incomeLine);
}
private void replace(Fragment fragmentToReplace, int container) {
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(container, fragmentToReplace);
ft.commit();
}
public static StatsFragment newInstance(Bundle args) {
StatsFragment fragment = new StatsFragment();
fragment.setHasOptionsMenu(true);
fragment.setArguments(args);
return fragment;
}
}
您应该使用getChildFragmentManager()
在片段中显示片段:
private void replace(Fragment fragmentToReplace, int container) {
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
ft.replace(container, fragmentToReplace);
ft.commit();
}
这样可以确保在父级的状态发生更改时(即,当它与另一个片段交换并返回时),正确处理片段。使用getActivity.getSupportFragmentManager()
时,片段不知道这些片段是相关的,因此无法还原片段