【发布时间】:2012-01-05 11:17:15
【问题描述】:
这里是与主题http://developer.android.com/guide/topics/ui/actionbar.html#ActionItems相关的开发指南
所以我们有活动
public class MyActivity extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.first_menu_button:
return true;
case R.id.second_menu_button:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
R.menu.my_menu 在哪里
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/first_menu_button"
android:showAsAction="always"
android:icon="@drawable/btn_first"/>
<item
android:id="@+id/second_menu_button"
android:showAsAction="always"
android:icon="@drawable/btn_second"/>
</menu>
要设置按钮http://developer.android.com/guide/topics/ui/actionbar.html#ActionItemStyles 的样式,我们应该使用 android:actionButtonStyle 属性。我是这样做的:
在清单中:
<activity android:name="com.root.test.MyActivity"
android:theme="@style/CustomActionBarStyle"
</activity>
在styles.xml中:
<style name="CustomActionBarStyle" parent="@android:style/Theme.Holo.Light">
<item name="android:actionButtonStyle">@style/customActionButtonStyle</item>
<item name="android:windowActionBar">true</item>
<item name="android:windowNoTitle">false</item>
</style>
<style name="customActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton">
<item name="android:[...]
</style>
问题是,无论我在customActionButtonStyle 中写什么,它都会忽略它。 CustomActionBarStyle 中的其他属性有效(甚至更复杂,为了简单起见,它们被略去)。我的主要目的是设置自定义填充。有没有其他方法可以做到这一点,就像其他一些,不是android:actionButtonStyle 属性?或者有人知道如何完成这项工作? (android:abItemPadding 属性仅在 3.1 中添加)
谢谢。
【问题讨论】:
标签: android styles themes android-actionbar