下面是相关主题http://developer.android.com/guide/topics/ui/actionbar.html#ActionItemsAndroid 3.0的:不能风格的动作栏的操作项按钮
开发者指南因此,我们必须在活动
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
属性?或者有人知道如何获得这项工作? (仅在3.1中添加了android:abItemPadding属性)
谢谢。
所以没有办法来设置这些参数programaticly这样的成分,唯一的办法就是使用一些其他构建元素? – Aleksey
不是没有一些非常可恶的黑客攻击,很可能会从版本到版本。 :)就像我说过的,为了与系统的其他部分保持一致,你应该保留这些东西。 – adamp
谢谢你的解释 – Aleksey