我看到这些API已被弃用,但如果您有遗留代码... 不知道这是否会导致屏幕闪烁,但这里是您可以尝试的。
ActionBarTabsActivity
public class ActionBarTabsActivity : Activity
{
ActionBar.Tab tab1, tab2;
async public void UnselectedTab(ActionBar.Tab tab)
{
if (tab == tab2)
{
await Task.Run(() =>
{
RunOnUiThread(() => { ActionBar.SelectTab(tab); });
});
}
}
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.ActionBarTabsLayout);
setupTabs();
}
private void setupTabs()
{
ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;
ActionBar.SetDisplayShowTitleEnabled(true);
tab1 = ActionBar
.NewTab()
.SetText("First")
//.SetIcon(R.drawable.ic_home)
.SetTabListener(new ActionBarFragment1(this));
ActionBar.AddTab(tab1);
ActionBar.SelectTab(tab1);
tab2 = ActionBar
.NewTab()
.SetText("Second")
//.setIcon(R.drawable.ic_mentions)
.SetTabListener(new ActionBarFragment1(this));
ActionBar.AddTab(tab2);
}
}
ActionBarFragment1
public class ActionBarFragment1 : Fragment, ITabListener
{
ActionBarTabsActivity parent;
public ActionBarFragment1(ActionBarTabsActivity parent)
{
this.parent = parent;
}
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your fragment here
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
return inflater.Inflate(Resource.Layout.ActionBarFragmentLayout1, container, false);
}
public void OnTabReselected(Tab tab, FragmentTransaction ft)
{
//throw new NotImplementedException();
}
public void OnTabSelected(Tab tab, FragmentTransaction ft)
{
//throw new NotImplementedException();
}
public void OnTabUnselected(Tab tab, FragmentTransaction ft)
{
parent.UnselectedTab(tab);
}
}
任何方法来禁用标签或全部行动起来吧? –
@YuriS,请提出一个单独的问题,我将尽力帮助 – Kalitsov
这不是问题。这是建议如何禁用切换,但我不知道是否有可能,不是为什么它是一个评论,而不是一个答案 –