我有DialogFragment
显示2个标签,每个标签显示一个动态创建并通过ChildFragmentTransaction
添加的片段。
问题是,在我DialogFragment
的第一次加载时,除了片段之外,所有内容都显示为,但在标签之间切换后,片段会正确显示。在横向和纵向之间进行切换时会发生同样的情况,第一次加载时,只显示选项卡,但切换时,会出现碎片。
以下是设置标签的代码。
public override View OnCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState)
{
View v = inflater.Inflate(Resource.Layout.Game_Over_Dialog1, parent, false);
PlayerTabs = v.FindViewById<TabHost>(Resource.Id.PlayerTabs);
GameOverOk = v.FindViewById<Button>(Resource.Id.CloseGameOver);
PlayerTabs.Setup();
TabHost.TabSpec spec = PlayerTabs.NewTabSpec(player1.Name);
spec.SetContent(Resource.Id.PlayerDataContainer);
spec.SetIndicator(player1.Name);
PlayerTabs.AddTab(spec);
spec = PlayerTabs.NewTabSpec(player2.Name);
spec.SetContent(Resource.Id.PlayerDataContainer);
spec.SetIndicator(player2.Name);
PlayerTabs.AddTab(spec);
Dialog.SetTitle("Game Over");
Dialog.SetCancelable(true);
GameOverOk.Click += delegate { Dialog.Dismiss(); };
PlayerTabs.TabChanged += PlayerTabs_TabChanged;
ChildFragmentManager.BeginTransaction().Add(Resource.Id.PlayerDataContainer, player1Frag).Commit();
return v;
}
我在ChildFragmentTransaction
设置标签之前和之后尝试将onStart
放置在不同的地方,我也尝试过以编程方式更改所选标签,但没有任何效果。
有关为什么在第一次显示对话框时我无法看到片段的任何想法?任何变通办法,或者我错过了一些微不足道的事情?
谢谢!
答案 0 :(得分:3)
添加 PlayerTabs.AddTab(spec);
(参数是索引号,因此在这种情况下为0或1)应该可以解决问题。我会在第二次
engine