33

AppCompat を使用してアプリを API7 にバックポートしていますが、アクションバーに問題があります。

アクションバーを使用FragmentActivityすると、携帯電話(API18)にActionBarActivity表示されますが、メニューボタンを押すとオプションメニューとして表示されます。

API7 を使用するエミュレーターでは、アクションバーは常にオプション メニューとして表示されます。

何か案は?

4

3 に答える 3

70

次のように、メニュー項目に compat 名前空間を使用します。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:compat="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_whatever"
      android:icon="@drawable/ic_action_whatever"
      android:title="@string/whatever"
      compat:showAsAction="ifRoom"  />
</menu>
于 2013-08-29T11:59:22.660 に答える
6

この投稿を指す重複に関連して、showAsAction を に設定しているにもかかわらず、ボタンをオーバーフロー アイテムではなくアクション アイテムとして表示するのに問題がありましたalwaysActivityの代わりにアクティビティを拡張することで、なんとかそれを強制することができましたActionBarActivityこの回答によると、11 未満の API レベルをサポートする必要がない場合、これは許容されます。

...extends ActionBarActivity:

ActionBarActivity を拡張します

...extends Activity:

ここに画像の説明を入力

于 2015-01-05T16:34:03.067 に答える
0

Doogee Valencia Y100Pro でデバッグし、「3 つの小さな四角形」のメニューが表示されませんが、MainActivity を で拡張するとandroid.support.v7.app.ActionBarActivity、アクション バーにテキスト/アイコン メニューが表示されます。次のスクリーンショットと menu.xml

<?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/action_update"
        android:icon="@drawable/ic_refresh"
        android:title="@string/action_update"
        app:showAsAction="always"/>
    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        app:showAsAction="ifRoom"/>
</menu>
于 2015-11-22T20:25:27.190 に答える