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);
}
如果我将菜单 XML 上的 app:showAsAction="always"
更改为 android:showAsAction="always"
,这会按我希望的方式工作 - 顶部栏上的图标 - 但随后我收到一条错误消息 不使用 appcompat 库时应使用 android:showAsAction。可以修复吗?
目标 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 添加的。删除该行并重建项目后,错误消失,刷新图标出现在右上角而不是菜单上。
我希望我的刷新项出现在顶栏上。我正在扩展 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);
}
如果我将菜单 XML 上的 app:showAsAction="always"
更改为 android:showAsAction="always"
,这会按我希望的方式工作 - 顶部栏上的图标 - 但随后我收到一条错误消息 不使用 appcompat 库时应使用 android:showAsAction。可以修复吗?
目标 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 添加的。删除该行并重建项目后,错误消失,刷新图标出现在右上角而不是菜单上。