我试图用两个选项卡创建一个活动,一个持有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'中。 –
请注意,如果您不想使用标签,只需使用ID和'FindFragmentByID'方法即可。无论哪种方式应该工作正常。 –