How can I implement custom Action Bar with custom buttons in Android?
Как я могу реализовать пользовательскую панель действий с пользовательскими кнопками в Android?
Я хочу реализовать пользовательскую ActionBar которая должна выглядеть следующим образом:
Итак, вопросы:
Как я могу реализовать кнопку типа пользовательский вид: просто какое-то изображение?
Как я могу нарисовать линию в верхней частиActionBar?
И как я могу реализовать кнопки без разделительных строк: добавить вкладки на ActionBar или что?
Переведено автоматически
Ответ 1
Это практически все, что вы получите, если захотите использовать ActionBar API. Я не уверен, что вы можете разместить цветную полоску над ActionBar без каких-либо странных Window взломов, это не стоит того. Что касается изменения MenuItems, вы можете сделать их более жесткими с помощью стиля. Это было бы что-то вроде этого, но я это не тестировал.
Вот как раздуть и добавить пользовательский макет в ваш ActionBar.
// Inflate your custom layout finalViewGroupactionBarLayout= (ViewGroup) getLayoutInflater().inflate( R.layout.action_bar, null);
// Set up your ActionBar finalActionBaractionBar= getActionBar(); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setCustomView(actionBarLayout);
// You customization finalintactionBarColor= getResources().getColor(R.color.action_bar); actionBar.setBackgroundDrawable(newColorDrawable(actionBarColor));
<!-- Text sizes --> <dimen name="text_size_small">14.0sp</dimen> <dimen name="text_size_medium">16.0sp</dimen>
<!-- ActionBar color strip --> <dimen name="colorstrip">5dp</dimen>
Если вы хотите настроить ее больше, чем это, вы можете вообще отказаться от использования ActionBar, но я бы не рекомендовал этого. Вы также можете ознакомиться с Рекомендациями по дизайну Android, чтобы получить лучшее представление о том, как создавать свой ActionBar.
Если вы решите отказаться от ActionBar и вместо этого использовать свой собственный макет, вам следует обязательно добавить возможность действий Toasts при длительном нажатии пользователями ваших "MenuItems". Этого можно легко достичь, используя эту суть.
2 Создайте стиль для панели действий и используйте пользовательский фон:
<resources> <!-- the theme applied to the application or activity --> <style name="CustomActivityTheme" parent="@android:style/Theme.Holo"> <item name="android:actionBarStyle">@style/MyActionBar</item> <!-- other activity and action bar styles here --> </style> <!-- style for the action bar backgrounds --> <style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">@drawable/background</item> <item name="android:backgroundStacked">@drawable/background</item> <item name="android:backgroundSplit">@drawable/split_background</item> </style> </resources>