c#xamarin错误膨胀类ActionMenuView

c#xamarin错误膨胀类ActionMenuView,c#,android,xamarin,tabs,android-actionbar,C#,Android,Xamarin,Tabs,Android Actionbar,嗨,我刚刚试着用xamarin和visual studio制作一个Android应用程序,但我不明白的是,如何制作一个简单的选项卡式ui,如图所示,我试着遵循[xamarin使用TabHost创建一个选项卡式ui教程 (开发者(dot)xamarin.com/guides/android/user\u interface/tab\u layout/walkthrough\u creating\u tabbed\u ui/) 但当我开始应用它时,我用actionbar尝试了一下,然后我一步一步地做

嗨,我刚刚试着用xamarin和visual studio制作一个Android应用程序,但我不明白的是,如何制作一个简单的选项卡式ui,如图所示,我试着遵循[xamarin使用TabHost创建一个选项卡式ui教程 (开发者(dot)xamarin.com/guides/android/user\u interface/tab\u layout/walkthrough\u creating\u tabbed\u ui/) 但当我开始应用它时,我用actionbar尝试了一下,然后我一步一步地做了所有的事情,得到了一个“错误膨胀类ActionMenuView”

这是我的密码:

protected override void OnCreate(Bundle bundle)
    {

        base.OnCreate(bundle);
        SetContentView(Resource.Layout.Main);
        ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;
        ActionBar.Tab Pudisoo = ActionBar.NewTab();
        Pudisoo.SetText("Pudisoo");
        Pudisoo.SetIcon(Resource.Drawable.Pudisoo_selected);
        Pudisoo.TabSelected += Pudisoo_TabSelected;
        ActionBar.AddTab(Pudisoo);

        ActionBar.Tab Settings = ActionBar.NewTab();
        Settings.SetText("Settings");
        Settings.SetIcon(Resource.Drawable.Pudisoo_selected);
        Settings.TabSelected += Settings_TabSelected;
        ActionBar.AddTab(Settings);
}
这真的很让人沮丧,因为我只需要一个简单的应用程序,里面有两个选项卡和不同的按钮以及文本视图,但这对我来说似乎是不可能的。如果有人能帮我纠正这个错误,或者告诉我我做错了什么 我会非常高兴的

我也没有找到任何创建简单tabview的(视频)教程。 如果你知道一个好的教程,你可以寄给我, 谢谢


(我还应该提到,我还不是很擅长广告编程)

假设您在从TabActivity派生的活动中,我使用此方法 添加我的标签,效果很好

addTab("home", "Simulator", typeof(SimActivity), Resource.Drawable.ic_action_simulator);
addTab("estimator", "Estimator", typeof(EstimatorActivity), Resource.Drawable.ic_action_estimator);
addTab("resources", "Resources", typeof(ResourceActivity), Resource.Drawable.ic_action_resources);
addTab("search", "Search", typeof(SearchActivity), Resource.Drawable.ic_action_search);
addTab("about", "About", typeof(AboutActivity), Resource.Drawable.ic_action_about);


Intent addTab(string keyName, string tabName, Type activityType, int resourceID, params Tuple<string,string>[] extras)
{
  Intent intent = new Intent(this, activityType);
  intent.AddFlags(ActivityFlags.NewTask);
  intent.PutExtra("key", keyName);
  foreach (Tuple<string,string> pair in extras)
  {
    string key = pair.Item1;
    string value = pair.Item2;
    intent.PutExtra(key, value);
  }

  TabHost.TabSpec spec = TabHost.NewTabSpec(keyName);
  spec.SetIndicator(tabName, Resources.GetDrawable(resourceID));
  spec.SetContent(intent);
  TabHost.AddTab(spec);
  return intent;
}
addTab(“主页”、“模拟器”、类型(SimActivity)、资源、可绘图、ic\U操作\U模拟器);
addTab(“估计器”、“估计器”、类型(估计器活动)、资源、可提取、ic行动估计器);
addTab(“资源”、“资源”、类型(ResourceActivity)、Resource.Drawable.ic\u action\u resources);
addTab(“搜索”,“搜索”,类型(搜索活动),Resource.Drawable.ic\u action\u搜索);
addTab(“about”、“about”、typeof(AboutActivity)、Resource.Drawable.ic\u action\u about);
Intent addTab(字符串keyName、字符串tabName、类型activityType、int-resourceID、参数元组[]附加)
{
意向意向=新意向(此为activityType);
intent.AddFlags(ActivityFlags.NewTask);
intent.PutExtra(“键”,键名);
foreach(额外的元组对)
{
字符串键=pair.Item1;
字符串值=pair.Item2;
intent.PutExtra(键、值);
}
TabHost.TabSpec spec=TabHost.NewTabSpec(键名);
spec.SetIndicator(tabName,Resources.GetDrawable(resourceID));
规格设置内容(意图);
TabHost.AddTab(spec);
返回意图;
}

我发现了问题,您必须设置

ActionBar.NavigationMode=ActionBarNavigationMode.Tabs;

在设置内容之前

protected override void OnCreate(Bundle bundle)
{

        base.OnCreate(bundle);

        ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;

        SetContentView(Resource.Layout.Main);

        ActionBar.Tab Pudisoo = ActionBar.NewTab();
        Pudisoo.SetText("Pudisoo");
        Pudisoo.SetIcon(Resource.Drawable.Pudisoo_selected);
        Pudisoo.TabSelected += Pudisoo_TabSelected;
        ActionBar.AddTab(Pudisoo);

        ActionBar.Tab Settings = ActionBar.NewTab();
        Settings.SetText("Settings");
        Settings.SetIcon(Resource.Drawable.Pudisoo_selected);
        Settings.TabSelected += Settings_TabSelected;
        ActionBar.AddTab(Settings);
}
你错过了重要的部分:

在活动的OnCreate方法中–在初始化任何UI小部件之前–应用程序必须将ActionBar上的NavigationMode设置为ActionBar.NavigationModeTabs,如以下代码段所示:


查看此链接了解完整示例,

我已经开始放弃了

我通过使用以下代码解决了问题:

(我会把这个留在这里,以防有人和我有同样的问题)


啊,我错了,我看到你想把它放在一个操作栏里,我也这么做了,现在就把代码挖出来。
protected override void OnCreate(Bundle bundle)
{

    base.OnCreate(bundle);

    ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;

    SetContentView(Resource.Layout.Main);

    ActionBar.Tab Pudisoo = ActionBar.NewTab();
    Pudisoo.SetText("Pudisoo");
    Pudisoo.SetIcon(Resource.Drawable.Pudisoo_selected);
    Pudisoo.TabSelected += Pudisoo_TabSelected;
    ActionBar.AddTab(Pudisoo);

    ActionBar.Tab Settings = ActionBar.NewTab();
    Settings.SetText("Settings");
    Settings.SetIcon(Resource.Drawable.Pudisoo_selected);
    Settings.TabSelected += Settings_TabSelected;
    ActionBar.AddTab(Settings);
}