У меня проблема: если ActionItem
имеет и значок, и текст, а ActionBar
разделен, он будет отображать только значок, даже если showAsAction="always|withText"
.
Есть ли способ заставить текст отображаться?
У меня проблема: если ActionItem
имеет и значок, и текст, а ActionBar
разделен, он будет отображать только значок, даже если showAsAction="always|withText"
.
Есть ли способ заставить текст отображаться?
withText
— подсказка системе. На устройствах или конфигурациях с ограничением по ширине система может проигнорировать его.
ActionBar
(то есть он имеет всю ширину экрана 4,65 дюйма), он все равно не отображается. И если значка нет, он покажет текст.
- person keyboardr; 05.12.2011
ActionBar
?
- person keyboardr; 07.12.2011
Недавно у меня была такая же проблема, и, как уже ответил adamp, невозможно заставить текст отображаться с опцией «withText».
На самом деле это можно сделать с помощью настраиваемого представления на панели действий, например, на экране «Редактировать / создать событие» Календаря Google (кнопка «Отмена» и «Сохранить» на панели действий, обе с текстом).
Проверьте источник Календарей Google о том, как это делается
https://android.googlesource.com/platform/packages/apps/Calendar
есть макет для пользовательского представления панели действий в
res/layout/edit_event_custom_actionbar.xml
Пожалуйста, также проверьте соответствующие стили
это применяется к панели действий в классе EditEventFragment, метод onCreateView
if (mUseCustomActionBar) {
View actionBarButtons = inflater.inflate(R.layout.edit_event_custom_actionbar,
new LinearLayout(mContext), false);
View cancelActionView = actionBarButtons.findViewById(R.id.action_cancel);
cancelActionView.setOnClickListener(mActionBarListener);
View doneActionView = actionBarButtons.findViewById(R.id.action_done);
doneActionView.setOnClickListener(mActionBarListener);
mContext.getActionBar().setCustomView(actionBarButtons);
}
Там же назначаются обработчики событий.
Параметр отображения панели действий задается в классе EditEventActivity, метод onCreate:
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_HOME|
ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);
Это то, что я понял до сих пор. Существует некоторая дополнительная конфигурация для других параметров экрана (планшеты), использующая стандартную конфигурацию меню для панели действий, но с использованием аналогичного макета, стиля и этих двух фрагментов в моем собственном коде дали ожидаемый результат (элемент панели действий с текстом).
Надеюсь это поможет