我有一个有5个片段的活动.现在,当我的屏幕被锁定然后解锁时,我想保留最后查看的片段



这就是我导航到每个片段的方式。

Fragment f = new ChartFragment();
f.setArguments(fragbundle);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.containerView, f);                               
ft.addToBackStack(null);
ft.commit();

现在我的问题是,当我解锁屏幕时,它显示了第一个片段。我如何从我持续的片段开始。

您可以在此处查看我的答案以保持片段状态。您可以隐藏/显示碎片。无需像上面的代码那样替换。而且,如果您要在应用程序时打开片段,则可以使用共享preference存储当前片段的ID/标签。

如何在Android中保存片段状态?

保存和检索您使用以下代码的片段:检索片段ID或用来识别特定片段的任何内容后,请导航到片段。

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putInt("fragmentId", fragId); //change the frag id, according to the fragment you're navigating, for example: you're going to fragment1, then set the fragId to 1, and then if you're going to fragment2, set it to 2. And later retrive the id and check it, if it has value 2, navigate to fragment2
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    int fragmentId = savedInstanceState.getInt("fragmentId");
}

最新更新