Как отображать как значок, так и название действия внутри ActionBar?

Мне нужно отобразить как icon и title действия внутри ActionBar .

Я пробовал вариант « withText », но он не имеет никакого эффекта.

введите описание изображения здесь

always | withText ‘ будет работать, если будет достаточно места, иначе он будет размещать только значок. Вы можете проверить его на своем телефоне с rotationм.

  

Вы можете создавать действия с текстом двумя способами:

1- От XML:

  

При раздувании меню вы должны вызвать getSupportMenuInflater() так как вы используете ActionBarSherlock .

2- Программно:

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem item = menu.add(Menu.NONE, ID, POSITION, TEXT); item.setIcon(R.drawable.drawable_resource_name); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT); return true; } 

Убедитесь, что вы импортируете com.actionbarsherlock.view.Menu и com.actionbarsherlock.view.MenuItem .

Для меня работало « always | withText ». Если у вас много меню, используйте «ifRoom» вместо «always».

  

Решение, которое я нахожу, заключается в использовании настраиваемого макета действий: здесь используется XML для меню.

     

Макет

     

это покажет значок и текст вместе.

Чтобы получить clickitem fragment или активность:

 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { //super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_details_fragment, menu); View view = menu.findItem(R.id.action_create).getActionView(); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show(); } }); } 

Если any1 в 2017 году задается вопросом, как это сделать программно, есть способ, который я не вижу в ответах

 .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 

Вы можете добавить кнопку на панели инструментов

    

создать файл btn_selector.xml в drawable

  

   

Ява:

private boolean isSelect = false;

Кнопка OnClickListener для кнопки:

 private void myClick() { if (!isSelect) { //**your code**// isSelect = true; } else {//**your code**// isSelect = false; } sort.setSelected(isSelect); } 

У некоторых из вас есть отличные ответы, но я нашел еще кое-что. Если вы хотите создать MenuItem с некоторым программным обеспечением SubMenu:

  @Override public boolean onCreateOptionsMenu(Menu menu) { SubMenu subMenu = menu.addSubMenu(0, Menu.NONE, 0, "Menu title"); subMenu.getItem().setIcon(R.drawable.ic_action_child); subMenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); subMenu.add(0, Menu.NONE, 0, "Subitem 1"); subMenu.add(0, Menu.NONE, 1, "Subitem 2"); subMenu.add(0, Menu.NONE, 2, "Subitem 3"); return true; } 

Попробуйте сначала добавить TextView в строку меню и использовать setCompoundDrawables() чтобы поместить изображение на setCompoundDrawables() вам сторону. В конце клика щелкните по ссылке в текстовое окно.

 MenuItem item = menu.add(Menu.NONE, R.id.menu_item_save, 10, R.string.save); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS|MenuItem.SHOW_AS_ACTION_WITH_TEXT); TextView textBtn = getTextButton(btn_title, btn_image); item.setActionView(textBtn); textBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // your selector here } }); 

Вы можете буквально настроить все здесь:

 public TextView getTextButton (String btn_title, Drawable btn_image) { TextView textBtn = new TextView(this); textBtn.setText(btn_title); textBtn.setTextColor(Color.WHITE); textBtn.setTextSize(18); textBtn.setTypeface(Typeface.create("sans-serif-light", Typeface.BOLD)); textBtn.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); Drawable img = btn_image; img.setBounds(0, 0, 30, 30); textBtn.setCompoundDrawables(null, null, img, null); // left,top,right,bottom. In this case icon is right to the text return textBtn; } 

Использование приложения: showAsAction = “always | withText”. Я использую Android 4.1.1, но он должен применяться в любом случае. Мой вид ниже

  

Следуй этим шагам:

  1. Добавьте экземпляр final ActionBar actionBar = getActionBar(); действий в final ActionBar actionBar = getActionBar(); Java final ActionBar actionBar = getActionBar();
  2. Включить опцию Home Display actionBar.setDisplayShowHomeEnabled(false);
  3. Добавьте следующий код в файл манифеста соответствующего действия android:[email protected]/logo and android:label="@string/actionbar_text"

Я думаю, это поможет вам

  • Размещение / Перекрытие (z-index) вид над другим представлением в android
  • Использовать кнопочную кнопку Android 4.0
  • Android Paint: .measureText () vs .getTextBounds ()
  • Программное добавление TableRow в TableLayout не работает
  • как добавить jscrollpane в jframe?
  • Как отключить даты до сегодняшнего дня в DatePickerDialog Android?
  • Как установить атрибут layout_weight динамически из кода?
  • Как заставить RelativeLayout работать с объединением и включать?
  • Исправить размер шрифта на Mobile Safari (iPhone), где текст отображается непоследовательно, а некоторые шрифты больше других?
  • WPF. Как я могу сосредоточить все элементы в WrapPanel?
  • MonoDroid: ошибка при вызове конструктора пользовательского представления - TwoDScrollView
  • Interesting Posts

    Как добавить целый фрейм данных в CSV в R

    Как удалить повторяющиеся файлы через отдельные деревья каталогов?

    Как вы можете прочитать CSV-файл в R с различным количеством столбцов

    Открыть конкретную активность, когда уведомление было нажато в FCM

    Невозможно применить к неспецифическому вложенному типу с дженериками

    Как добавить вывод в конец текстового файла в сценарии оболочки / bash

    Что такое клавиша быстрого доступа для запуска слайд-шоу из выбранного или активного слайда?

    Mount SkyDrive как сетевой диск

    Найдите, установлен ли пакет

    Как сопоставить любой символ в нескольких строках в регулярном выражении?

    Использование Express и узла, как поддерживать сеанс по субдоменам / хост-узлам

    Моя камера Android Uri возвращает нулевое значение, но исправление Samsung на месте, помощь?

    Нерекурсивный алгоритм первого поиска глубины

    Работа с данными в текстовом блоке в Silverlight / WP7

    Центр Треугольника в нижней части Div

    Давайте будем гением компьютера.