繁体   English   中英

ListActivity的ActionBar上的菜单图标

[英]Menu icon on ActionBar of ListActivity

我希望刷新项显示在顶部栏上。 我正在扩展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带有错误放置的菜单图标。

如果我将菜单XML上的app:showAsAction="always"更改为android:showAsAction="always" ,则可以按我想要的方式工作(顶部栏上的图标),但随后出现错误提示, 应在不使用android:showAsAction的情况下使用使用appcompat库 可以解决吗?

定位API 19。

这取决于是否具有用于菜单的物理按钮,该按钮不会出现。 但您可以尝试以下操作:

<item
    android:id="@+id/refresh_all_services"
    android:icon="@drawable/ic_menu_refresh"
    android:title="@string/refresh_all_services"
    app:showAsAction="withText|ifRoom"
    app:actionProviderClass="android.support.v7.widget.ActionProvider"
    />

如问题所述, android:showAsAction="always"可以工作,但是会产生错误。

尽管该项目未直接使用appcompat库,但我发现由上述项目导入的库具有com.android.support:appcompat-v7:XXX.YYY.ZZZ作为依赖项,即使不需要它也是如此。 这是由Android Studio添加的。 一旦删除了行并重建了项目,错误就消失了,刷新图标出现在右上角而不是菜单上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM