我对操作栏使用以下定义:
<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
我的活动代码(我使用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
}
}
答案 0 :(得分:1)
要解决您的问题,您必须扩展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)
答案 1 :(得分:0)
尝试使用android:showAsAction而不是compat:showAsAction。 或者可能是Android 4.3 menu item showAsAction="always" ignored。