2015-10-27 22 views
9

何度も転記された同じ問題があります。like hereまたはhereです。私はAndroidStudioにプレビューに表示]メニュー項目を定義:メニューバーに表示されないメニュー項目

enter image description here

をしかし、私は自分の携帯電話上でアプリケーションを実行すると、アイコン(png画像)が表示されていない、と多くのスペースがあります利用可能です。しかし、この「追加」オプションはオプションメニューに表示されます(右端に「Srttings」と一緒に表示されます)。ここに私のmenu.xmlです:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".MainActivity"> 

    <item android:id="@+id/action_favourite" 
     android:icon="@mipmap/ic_add" 
     android:title="@string/menu_add" 
     android:showAsAction="always"/> 


    <item android:id="@+id/action_settings" android:title="@string/action_settings" 
     android:orderInCategory="100" app:showAsAction="never" /> 

</menu> 

私は私が見つけることができる提案を試みたが、それらのどれも私の問題を解決していません。私の電話はLG G3です。どうすればこの問題を解決できますか?

追加情報:onCreateOptionsMenu

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 
+0

あなたの 'onCreateOptionsMenu()'と 'onPrepareOptionsMenu()'コードを共有できますか? – antonio

+0

更新された質問をご覧ください。 'onPrepareOptionsMenu()'メソッドがありません... – Alex

+0

'onCreateOptionsMenu'を' onPrepareOptionsMenu'に移動しようとしましたか?ドキュメンテーションによれば、 'onPrepareOptionsMenu'はメニューが表示される直前に呼び出され、毎回表示されます。私の賭けは 'onCreateOptionsMenu'でメニューを膨らませることです。システムはまだメニューのサイズを計算しておらず、すべてのメニューオプションはオーバーフローで表示されています。 – antonio

答えて

8

ただ、それが表示されますapp:showAsAction="always"xmlns:app="http://schemas.android.com/apk/res-auto"を使用しています。

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".MainActivity"> 

    <item android:id="@+id/action_favourite" 
     android:icon="@mipmap/ic_add" 
     android:title="@string/menu_add" 
     app:showAsAction="always"/> 


    <item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     android:orderInCategory="100" 
     app:showAsAction="never" /> 

</menu> 

あなたはおそらく、アプリケーションの名前空間に依存するサポートライブラリを使用しています。不確かな場合は、同じプロパティを2回追加してください(android:app:名前空間)。 onCreate()

+0

私はあなたの提案を試みましたが、メニューバーに「Add」という名前は表示されません。以前とまったく同じ動作... – Alex

+0

提供されたコードを使用する場合は、オーバーフローメニューのツールバーと設定オプションにアイコンが表示されます。あなたは何を正確に見ていますか? –

+0

メニューバーの投稿画像と同じですが、メニューバーの「プラス」アイコンは表示されません。左に「Testapp」と書かれていますが、右に3つの点があります。これらの3つの点をタップすると、「追加」メニュー(および「設定メニュー」)が表示されます。 – Alex

1

setHasOptionsMenu(true)

を追加し、あなたはおそらく間違ったメニューファイルを膨張されています。

関連する問題