And*_*por 5 android android-fragments
我有一个在 onCreate 中加载片段的 MainActivity。我有另一个从操作栏加载的片段。如果我更改第一个片段的屏幕方向,它会按预期工作。如果我更改第二个片段,它将重置为第一个片段。这似乎是因为它重建了所有内容并将原始片段放回到片段管理器中。我确信有一种方法可以跟踪当前显示的片段,但我不确定如何进行。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Database entries
myDataSource = new FillupDataSource(this);
myDataSource.open();
// Create an instance of the MyListFragment
MyListFragment firstFragment = new MyListFragment();
Bundle bundle = new Bundle();
bundle.putSerializable("dataSource", (Serializable) myDataSource);
firstFragment.setArguments(bundle);
// Add the fragment to the 'fragment_container' FrameLayout
getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, firstFragment).commit();
getActionBar().setDisplayHomeAsUpEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
我确信这一定是已经做过很多次的事情,但我很难知道如何搜索它。
一个可能的解决方案是保存当前片段索引和实例状态:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
//save current fragment index
}
Run Code Online (Sandbox Code Playgroud)
然后恢复状态
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
//have the activity switch the fragment via the saved fragment index
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3329 次 |
| 最近记录: |