C# Xamarin Android中的工具栏未显示图标

C# Xamarin Android中的工具栏未显示图标,c#,android,visual-studio,xamarin,android-toolbar,C#,Android,Visual Studio,Xamarin,Android Toolbar,我正在尝试创建一个工具栏来保存应用程序中的项目。但我的工具栏显示不正确 它是这样显示的 我想这样显示 在我的片段中 public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater) { inflater.Inflate(Resource.Menu.menu_RefuelingToolbar, menu); } menu_RefuelingToolbar.xml

我正在尝试创建一个工具栏来保存应用程序中的项目。但我的工具栏显示不正确

它是这样显示的 我想这样显示

在我的片段中

    public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
    {
        inflater.Inflate(Resource.Menu.menu_RefuelingToolbar, menu);
    }
menu_RefuelingToolbar.xml

    <?xml version="1.0" encoding="utf-8" ?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          tools:context=".RefuelingFragment">
          <item android:id="@+id/button_Save"
                android:icon="@drawable/ic_done_white_24dp"
                android:showAsAction="always"
                android:title="Settings" />
    </menu>

如果扩展
AppCompatActivity
而不是
Activity
如下:

public class MainActivity : AppCompatActivity {...}//instead of Activity
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   >
<item android:id="@+id/button_MGradeSave"
    android:icon="@drawable/ic_done_white_24dp"
    app:showAsAction="ifRoom"
    android:title="Save" />
</menu>
在这种情况下,工具栏无法显示图片,原因是:

当使用appcompat库时,菜单资源应该引用app:namespace中的showAsAction,而不是android:namespace。 类似地,当不使用appcompat库时,应该使用android:showaAction属性

我认为问题在于您将框架
活动
AppCompat
菜单混合在一起

您应该将
AppCompat活动
AppCompat操作栏
app:showasaaction
一起使用;或使用android:showAsAction进行活动

编辑:在
菜单\u MGradeToolbar.xml
中修改代码,如下所示:

public class MainActivity : AppCompatActivity {...}//instead of Activity
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   >
<item android:id="@+id/button_MGradeSave"
    android:icon="@drawable/ic_done_white_24dp"
    app:showAsAction="ifRoom"
    android:title="Save" />
</menu>


是结果。

如果扩展
AppCompatActivity
而不是
Activity
,如下所示:

public class MainActivity : AppCompatActivity {...}//instead of Activity
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   >
<item android:id="@+id/button_MGradeSave"
    android:icon="@drawable/ic_done_white_24dp"
    app:showAsAction="ifRoom"
    android:title="Save" />
</menu>
在这种情况下,工具栏无法显示图片,原因是:

当使用appcompat库时,菜单资源应该引用app:namespace中的showAsAction,而不是android:namespace。 类似地,当不使用appcompat库时,应该使用android:showaAction属性

我认为问题在于您将框架
活动
AppCompat
菜单混合在一起

您应该将
AppCompat活动
AppCompat操作栏
app:showasaaction
一起使用;或使用android:showAsAction进行活动

编辑:在
菜单\u MGradeToolbar.xml
中修改代码,如下所示:

public class MainActivity : AppCompatActivity {...}//instead of Activity
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   >
<item android:id="@+id/button_MGradeSave"
    android:icon="@drawable/ic_done_white_24dp"
    app:showAsAction="ifRoom"
    android:title="Save" />
</menu>


是结果。

您的活动、活动或应用程序活动的类型是什么?它是一个片段。不是活动。请发布您的代码好吗?请参考我的项目:您的活动、活动或AppCompatActivity的类型是什么?它是一个片段。不是一个活动。你能发布你的代码吗?请参考我的项目:我仍然无法让它工作。请参考我的项目:非常感谢。它可以工作。我已经用这个解决方案更新了我的GitHub项目。我仍然无法让它工作。请参考我的项目:非常感谢。我已经用这个解决方案更新了我的GitHub项目。