фрагменты и изменения ориентации экрана - PullRequest
0 голосов
/ 16 декабря 2011

Я не понимаю, как фрагменты и ориентация экрана должны работать в Android.

У меня есть фрагмент, определенный в XML.

Фрагмент создавать дорого, поэтому я хочуиспользуйте его повторно.

У меня есть код, который выглядит следующим образом:

@Override
protected void onSaveInstanceState (Bundle outState) {
    super.onSaveInstanceState(outState);
    getSupportFragmentManager().putFragment(outState, "myfrag", mFrag);
}

и

@Override
protected void onRestoreInstanceState (Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    mFrag = getSupportFragmentManager().getFragment(savedInstanceState, "myfrag");
}

Чего я не понимаю, так это как замените фрагмент в XML фрагментом, который я получил заново.Когда я изменяю ориентацию экрана, это приводит к разрушению моей деятельности и ее повторному созданию, но если я могу сохранить свой фрагмент и использовать его повторно, это должно значительно ускорить изменение ориентации.

tia.

1 Ответ

1 голос
/ 29 декабря 2011

Вы можете создать структуру кадра в xml и фрагмент в коде. Затем добавьте созданный фрагмент к вашей структуре кадра. При изменении ориентации вы пытаетесь найти созданный фрагмент с помощью тега или идентификатора и выполните некоторые действия по удалению / добавлению.

fragmentmanager.findFragmentByTag(" ... ");
fragmentmanager.add(R.id.fragmentContainer, myFragment, "...");

Нечто подобное.

http://developer.android.com/guide/topics/fundamentals/fragments.html Взгляните на подраздел «Или программно добавьте фрагмент в существующую ViewGroup». Это подраздел раздела «Добавление фрагмента в действие».

С уважением, Брэм

...