未能在xml中设置操作栏图标

时间:2012-05-21 16:26:20

标签: android android-actionbar android-icons

虽然我可以在我的Java代码中设置Action Bar图标,但是当我在XML中设置它时,我无法显示它们。我更喜欢用XML设置它们。

以下是我尝试实现相同功能的两次尝试 - 操作栏上的三个图标。你能解释为什么第二种方法失败了吗?

(注意,在我的最终版本中,我打算在溢出菜单中保留三个中的两个,我只是想在测试期间显示所有三个。)

此XML:

<?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item   android:id="@+id/menuConfig"
                android:title="Configuration"
        />
        <item   android:id="@+id/menuAbout"
                android:title="About" 
        />
        <item   android:id="@+id/menuHelp"
                android:title="Help" 
        />
    </menu>

这个Java:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.optionsmenu, menu);

    MenuItem settings = menu.findItem(R.id.menuConfig);     
    settings.setIcon(R.drawable.settings);
    settings.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    MenuItem about = menu.findItem(R.id.menuAbout);     
    about.setIcon(R.drawable.about);
    about.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    MenuItem help = menu.findItem(R.id.menuHelp);       
    help.setIcon(R.drawable.help);
    help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    return true;
}   

制作此显示:

enter image description here

然而,这个XML:

<?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item   android:id="@+id/menuConfig"
            android:title="Configuration"
            android:icon="@drawable/settings"
            showAsAction="ifRoom"
    />
    <item   android:id="@+id/menuAbout"
            android:title="About" 
            android:icon="@drawable/about"
            showAsAction="ifRoom"
    />
    <item   android:id="@+id/menuHelp"
            android:title="Help" 
            android:icon="@drawable/help"
            showAsAction="ifRoom"
    />
</menu>

这个Java:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.optionsmenu, menu);

    return true;
}   

制作此显示:

enter image description here

1 个答案:

答案 0 :(得分:2)

没关系。

溢出菜单仅显示文字。仅当项目在操作栏中显示为操作时才使用图标。

如果要查看操作栏中的图标,则必须使用

android:showAsAction="ifRoom"

而不是

showAsAction="ifRoom"