0

今日、私はかなり醜いバグと戦っています。いくつかの項目を (タブを使用せずに) 下部メニューに配置したいのですが、これらの項目には「アイコン」ではなく「タイトル」のみが定義されている必要があります。すべてが Android <= ICS のデバイスで動作します。メニュー項目の幅が正しく計算されます (最初の 3 つの項目には「always」属性を使用し、他の項目は「ifRoom」を使用します)。JB デバイスでアプリを起動すると、これらのメニュー項目の最後に、他の 4 つのメニュー項目を非表示にする「3 つのドット ボタン」が重なって表示されます。

HW Ascend G300 (ICS、ハードウェア メニュー ボタンが無効) でこれをテストしましたが、結果は正しかったです。HTC X (JB) では、結果が正しくありませんでした。

Ps: 最初のメニュー項目 (action_menu_map) のアイコンを設定すると、すべてが機能します (もちろん、設定したくありません)。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
     <item 
         android:id="@+id/action_menu_map"
         android:showAsAction="always"
         android:title="@string/ab_map"/>
     <item 
         android:id="@+id/action_menu_list"
         android:title="@string/ab_list"
         android:showAsAction="always"/>
     <item 
         android:id="@+id/action_menu_routes"
         android:title="@string/ab_routes"
         android:showAsAction="always"/>
     <item 
         android:id="@+id/action_menu_call"
         android:title="@string/ab_call"
         android:icon="@drawable/call_icon"
         android:showAsAction="ifRoom"/>
     <item 
         android:id="@+id/action_menu_report_event"
         android:title="@string/ab_report_event"
         android:icon="@drawable/message_icon"
         android:showAsAction="ifRoom"/>
     <item 
         android:id="@+id/action_menu_settings"
         android:title="@string/ab_settings"
         android:showAsAction="ifRoom"/>
     <item 
         android:id="@+id/action_menu_info"
         android:title="@string/ab_info"
         android:showAsAction="ifRoom"/>
</menu>

ありがとう ;)

4

2 に答える 2

0

この 3 つのドットの問題が下部に表示され、HTC デバイスの下部にのみ表示されていました (申し訳ありませんが、これについては間違っている可能性がありますが、これが私が見つけたものです)。最後に、プロジェクトのビルド ターゲットを API レベル 18 に変更するか、マニフェスト ファイルに android:targetSdkVersion="18" を設定すると、3 つのボタンが表示されなくなりました。

于 2013-08-23T12:17:09.067 に答える
0

これを使って SHOW_AS_ACTION_IF_ROOM

これを使用すると、アクションバーにアイテムを保持するのに十分なスペースがない場合、垂直の 3 つのドット内に入ります。

例えば

menu.add("More").setOnMenuItemClickListener(this.DebugButtonHandler)
    .setIcon(R.drawable.info).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
于 2013-10-23T09:18:14.597 に答える