ListActivity的ActionBar上的菜单图标

时间:2015-07-03 14:51:52

标签: android android-actionbar android-appcompat menubar android-menu

我希望我的刷新项目显示在顶部栏上。我正在扩展ListActivity并使用主题android:Theme.Holo.Light.DarkActionBar。使用以下命令创建菜单:

<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="eu.pcas_project.client.android.pa.services.ServiceList">

    <item
        android:id="@+id/refresh_all_services"
        android:title="@string/refresh_all_services"
        android:icon="@drawable/ic_menu_refresh"
        app:showAsAction="always" />
</menu>

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_service_list, menu);
    return super.onCreateOptionsMenu(menu);
}

ListActivity with misplaced menu icon.

如果我将菜单XML上的app:showAsAction="always"更改为android:showAsAction="always",这就像我希望它在顶部栏上的图标一样 - 但是我得到一个错误说应该使用android:showAsAction何时不使用appcompat库。可以修复吗?

定位API 19。

2 个答案:

答案 0 :(得分:0)

这取决于,如果你有菜单的物理按钮,它就不会出现。但你可以试试这个:

["335, 161", "190, 318", "212, 542", "144, 736"]

答案 1 :(得分:0)

正如问题所述,android:showAsAction="always"有效,但会产生错误。

虽然项目没有直接使用appcompat库,但我发现由该项目导入的库有com.android.support:appcompat-v7:XXX.YYY.ZZZ作为依赖项,即使它不需要。这是Android Studio添加的。移除线条并重建项目后,错误消失,刷新图标出现在右上角而不是菜单上。