メニューリソースの showAsAction エラー解決方法|Android開発
メニューリソース(res/menu/
配下)のXML記述時にshowAsAction
でエラーが出た時の解決方法です。
名前空間宣言(xmlns
)を追加して指定します。
メニューのガイドなんかでは以下のように記述されていますが、Android Support Library パッケージのv7 appcompat ライブラリを使用しているとandroid:showAsAction
でエラーになります。
v7 appcompat ライブラリのGradle ビルド スクリプトは
com.android.support:appcompat-v7:27.1.1
のように記述しています。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/icon_settings"
android:icon="@drawable/ic_settings_white_24dp"
android:title="@string/settings"
android:showAsAction="always"/>
</menu>
修正方法
名前空間宣言にhttp://schemas.android.com/apk/res-auto
を追加します。
android:showAsAction
のandroid
を追加した名前空間宣言に変更します。
修正後のソースコード
名前空間宣言app
を追加。
<?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/icon_settings"
android:icon="@drawable/ic_settings_white_24dp"
android:title="@string/settings"
app:showAsAction="always"/>
</menu>