Я пытаюсь создать мероприятие с двумя вкладками, один из которых содержит FragmentA
и один держатель FragmentB
. Вот как я могу добавить фрагменты к деятельности:OnCreateView Вызывается дважды
[Activity(Label = "My App")]
public class MyActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.ConnectionMenu);
ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;
AddTab("A", new FragmentA());
AddTab("B", new FragmentB());
}
private void AddTab(string tabText, Fragment fragment)
{
var tab = ActionBar.NewTab();
tab.SetText(tabText);
tab.TabSelected += (sender, e) =>
{
e.FragmentTransaction.Replace(
Resource.Id.fragmentContainer,
fragment);
};
ActionBar.AddTab(tab);
}
}
Когда я повернуть ориентацию, я хочу, чтобы поля, заполненные в фрагментах то же самое. Я сохраняю свои данные в OnSaveInstanceState
и восстанавливаю данные в OnActivityCreated
. Тем не менее, я замечаю, что методы OnCreateView
и OnActivityCreated
вызываются дважды за каждый поворот. Первый раз, когда я был заполнен Bundle
, и второй раз, когда пучок был нулевым.
Я предполагаю, что моя ошибка в классе MyActivity
, но если вам нужна дополнительная информация, дайте мне знать!
где я могу добавить эти теги? где-то в axml? – flakes
Да, вы можете добавить 'android: tag' в свой макет' .xml/.axml'. –
Как примечание, если вы не хотите использовать теги, просто используйте идентификатор и метод «FindFragmentByID». В любом случае это должно работать нормально. –