Вот руководство разработчика по теме 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)
Спасибо.