菜单项 showAsAction="always" 无效

Menu Item showAsAction="always" has no effect

我对操作栏使用以下定义:

<style name="YesBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <!-- task bar styles go here -->
</style>

这是我的菜单项定义:

<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:compat="http://schemas.android.com/apk/res-auto">

    <item
        android:title="@string/action_request_payment"
        android:id="@+id/actionRequestPayment"
        compat:showAsAction="never"/>

    <item
        android:title="@string/action_send_money"
        android:id="@+id/actionSendMoney"
        compat:showAsAction="never"/>

    <item
        android:title="@string/action_tx_history"
        android:icon="@drawable/ic_action_tx_history"
        android:id="@+id/actionTxHistory"
        compat:showAsAction="always"/>

    <item
        android:title="@string/action_settings"
        android:id="@+id/actionSettings"
        compat:showAsAction="never"/>

</menu>

我的问题是 compat:showAsAction="always" 无效:该图标从未显示在操作栏中。我怎样才能解决这个问题?

UPD

我的 activity 代码(我使用 Scala):

class WalletActivity extends ActionBarActivity {
  lazy val sack = findViewById(R.id.sack).asInstanceOf[SackView]

  override def onCreate(savedInstanceState: Bundle) {
    setContentView(R.layout.activity_wallet)
    super.onCreate(savedInstanceState)
  }

  override def onCreateOptionsMenu(menu: Menu) = {
    getMenuInflater.inflate(R.menu.ops, menu)
    true
  }
}

尝试使用 android:showAsAction 而不是 compat:showAsAction。 或者可能是这个 Android 4.3 menu item showAsAction="always" ignored.

要解决您的问题,您必须扩展 ActionBarActivity。但是你得换个风格

<style name="YesBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <!-- task bar styles go here -->
</style>

有了这个:

<style name="YesBar" parent="Theme.AppCompat">
    <!-- task bar styles go here -->
</style>

并更改这些方法的顺序

setContentView(R.layout.activity_wallet)
super.onCreate(savedInstanceState)

super.onCreate(savedInstanceState)
setContentView(R.layout.activity_wallet)