2017-01-05 17 views
0

Androidアプリでツールバーの操作に問題があります。「ifRoom」のツールバーにアクションが表示されない

私はapp:showAsAction="ifRoom"属性でいくつかのアクションを持つグループを持っています。 ifRoomで4個未満のアイテムがあれば、すべて正常に動作します。しかし、4番目のアイテムを追加すると、すべてのアイテムがツールバーから消えます。

は、それは正常に動作します:

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> 
<group android:id="@+id/group_paint" 
    android:orderInCategory="1" 
    app:showAsAction="ifRoom"> 
    <item android:id="@+id/action_layers" 
     android:icon="@drawable/ic_layers_white_24dp" 
     android:title="@string/action_layers" 
     android:orderInCategory="3" 
     app:showAsAction="ifRoom"/> 
    <item android:id="@+id/action_tool" 
     android:icon="@drawable/ic_properties_white_24dp" 
     android:title="@string/action_tool" 
     android:orderInCategory="4" 
     app:showAsAction="ifRoom" /> 
    <item android:id="@+id/action_action1" 
     android:icon="@drawable/ic_action1_white_24dp" 
     android:title="@string/action_1" 
     android:orderInCategory="7" 
     app:showAsAction="ifRoom" /> 

    <item 
     android:id="@+id/action_settings" 
     android:icon="@drawable/ic_settings_white_24dp" 
     android:title="@string/action_settings" 
     android:orderInCategory="7" 
     app:showAsAction="never" /> 
</group> 
</menu> 

It works fine

予期しない結果:私が見たいのは何

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> 
<group android:id="@+id/group_paint" 
    android:orderInCategory="1" 
    app:showAsAction="ifRoom"> 
    <item android:id="@+id/action_layers" 
     android:icon="@drawable/ic_layers_white_24dp" 
     android:title="@string/action_layers" 
     android:orderInCategory="3" 
     app:showAsAction="ifRoom"/> 
    <item android:id="@+id/action_tool" 
     android:icon="@drawable/ic_properties_white_24dp" 
     android:title="@string/action_tool" 
     android:orderInCategory="4" 
     app:showAsAction="ifRoom" /> 
    <item android:id="@+id/action_action1" 
     android:icon="@drawable/ic_action1_white_24dp" 
     android:title="@string/action_1" 
     android:orderInCategory="7" 
     app:showAsAction="ifRoom" /> 
    <item android:id="@+id/action_action2" 
     android:icon="@drawable/ic_action2_white_24dp" 
     android:title="@string/action_2" 
     android:orderInCategory="8" 
     app:showAsAction="ifRoom" /> 

    <item 
     android:id="@+id/action_settings" 
     android:icon="@drawable/ic_settings_white_24dp" 
     android:title="@string/action_settings" 
     android:orderInCategory="7" 
     app:showAsAction="never" /> 
</group> 
</menu> 

Unexpected result

は次のとおりです。ツールバーと第四の3つのアクションオーバーフローメニューに表示されます。

答えて

2

あなたはグループとして項目を扱うのに<group>要素を使用しています。アイテムをグループとして扱いたくない場合(たとえば、使用可能なスペースに基づいてアクションバーに個別に表示したい場合)、<group>要素を削除します。

+0

ボタンをクリックしたときにすべての要素を無効にし、別のボタンをクリックしたときに再び要素を表示できるようにするために、「」要素を使用します。個別に各項目を非表示にする必要がありますか、それとも別の方法がありますか? –

+0

@KarolJurski:AFAIK、アイテムのグループを解除して個別に非表示にする必要があります。しかし、 'ArrayList 'を作成してそのリストを反復して、それぞれに 'setVisibility()'を呼び出すだけで簡単にできます。 – CommonsWare

関連する問題