Урок 107. Android 3. ActionBar. Размещение элементов

Обсуждение уроков
Аватара пользователя
Atetc
Сообщения: 45
Зарегистрирован: 02 май 2014, 13:13
Откуда: Уфа
Контактная информация:

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение Atetc » 29 май 2014, 23:16

Подскажите как можно реализовать вторую серую подпись в overflow menu ?
Изображение

Пытаюсь как тут http://stackoverflow.com/questions/2250 ... -actionbar, но вторые сутки безрезультатно
Кстати у них там ошибка, нужно использовать:
app:showAsAction="never" вместо android:showAsAction="never"
Последний раз редактировалось Atetc 29 май 2014, 23:47, всего редактировалось 3 раза.
Русскоязычный чат Android разработчиков https://gitter.im/rus-speaking/android

Аватара пользователя
Atetc
Сообщения: 45
Зарегистрирован: 02 май 2014, 13:13
Откуда: Уфа
Контактная информация:

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение Atetc » 29 май 2014, 23:31

Максимум, что удалось - это увидеть 2 строчки в самом ActionBar когда ставил параметр
app:showAsAction="always" - там эти две строчки хорошо выползают
но при app:showAsAction="never" - тишина - пустой пункт меню, два друга как партизаны спрятались
Изображение Изображение

Вот menu XML
[syntax=xml]<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="ru.po_mo.plasmacalculator.app.MainActivity">
<item android:id="@+id/menu_item_torch"
app:actionLayout="@layout/custom_menu_item"
android:orderInCategory="100"
app:showAsAction="never"/>
<item android:id="@+id/menu_item_units"
android:title="@string/menu_units"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="@+id/menu_item_feed"
android:title="@string/menu_feed"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="@+id/menu_item_buy"
android:title="@string/menu_buy_full"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="@+id/menu_item_about"
android:title="@string/menu_about"
android:orderInCategory="100"
app:showAsAction="never"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/about_text"
android:id="@+id/textView"
android:layout_gravity="center_horizontal"
android:layout_margin="25dp"/>
</menu>
[/syntax]

Вот custom_menu_item XML
[syntax=xml]<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/textView3" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/textView4" />
</LinearLayout>[/syntax]
Русскоязычный чат Android разработчиков https://gitter.im/rus-speaking/android

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение klblk » 30 май 2014, 08:01

Atetc писал(а):app:showAsAction="never" вместо android:showAsAction="never"
могу только этот пунктик разъяснить. В первом случае используется support v7 appcompat, а во втором никаких библиотек не используется (стандартный ActionBar).

Судя по тому что в гугле ничего стоящего не нашлось, то вероятно стандартными способами кастомизировать меню не получится.
Можно попробовать сделать кастомый итем с collapseActionView или кастромный ActionProvider. Но тут я ни разу не уверен, т.к. сам такое не пытался делать.

sergeymild
Сообщения: 2
Зарегистрирован: 12 июл 2014, 21:51

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение sergeymild » 12 июл 2014, 21:56

Добрый день такой вопрс, есть несколько пунктов меню в ActionBar они всегда отображаются, хочу к ним добавить иконки, но как только я из добавляю пропадает title, как сделать чтобы они отображались вместе? Примерно так же как в приложении Tjournal когда заходишь в новость там отображается значок комментария и количество. Пробовал уже по всякому не работает никак.
в menu.xml вот так написано.

<item
android:title="Комментарии"
android:icon="@drawable/comment"
android:showAsAction="ifRoom|withText" />

dusshes
Сообщения: 23
Зарегистрирован: 25 сен 2013, 14:23

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение dusshes » 15 дек 2014, 15:15

Всем привет!
Тут интересная штука вылезла со стандартным меню.
На всей устройствах все работает как обычно: оно отрывается либо по аппаратной кнопке меню, либо, если таковая отсутствует, то по кнопке с тремя вертикальными точками в actionbare справа (она появляется автоматически).
Но тут появилась железка: HTC Desire 816.
В ней, как утверждает пользователь, отсутствует и аппаратная кнопка "меню" и программная не появляется. Как побороть эту ситуацию красиво?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение doter.ua » 15 дек 2014, 15:42

dusshes писал(а):Всем привет!
Тут интересная штука вылезла со стандартным меню.
На всей устройствах все работает как обычно: оно отрывается либо по аппаратной кнопке меню, либо, если таковая отсутствует, то по кнопке с тремя вертикальными точками в actionbare справа (она появляется автоматически).
Но тут появилась железка: HTC Desire 816.
В ней, как утверждает пользователь, отсутствует и аппаратная кнопка "меню" и программная не появляется. Как побороть эту ситуацию красиво?
Если верить гуглу, то на нем стоит программная оболочка HTC Sense 6.0, возможно дело в ней. Я бы не стал ничего выдумывать, производители штопают свои надстройки для приманивания покупателей, а как доходит дело до поддержки, то все сдуваются. Конечно HTC солидная компания и косяки встречаются реже, чем у менее известных брендов, но все равно все эти оболочки - преступление против разработчиков. Юзер, который покупает экзотическую лопату с фирменными надстройками и фишками, должен быть готов к таким сюрпризам.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

dusshes
Сообщения: 23
Зарегистрирован: 25 сен 2013, 14:23

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение dusshes » 15 дек 2014, 15:54

Жалко пользователя... Хотелось бы помочь... Да и HTC достаточно распространенная марка в массах.
Интересно а можно как-то в программе понять:
1. Вывелась автоматическая кнопка меню в actionbare или нет?
2. Имеет ли устройство аппаратную кнопку меню?

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение klblk » 16 дек 2014, 07:48

показывать точки всегда:
viewtopic.php?f=33&t=5082#p37156

dusshes
Сообщения: 23
Зарегистрирован: 25 сен 2013, 14:23

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение dusshes » 16 дек 2014, 12:38

klblk писал(а):показывать точки всегда:
viewtopic.php?f=33&t=5082#p37156
Отлично! Спасибо!
Первый вопрос закрыт. Остался второй.

Oyasi
Сообщения: 12
Зарегистрирован: 17 дек 2014, 20:31

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение Oyasi » 20 дек 2014, 00:36

Вечер добрый, подскажите пожалуйста, почему у меня при наличии следующих кодов, приложение вообще без меню?

my_menu.xml
[syntax=java]
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item1"
android:showAsAction="always"
android:title="123">
</item>
<item
android:id="@+id/item2"
android:icon="@android:drawable/ic_menu_call"
android:showAsAction="ifRoom"
android:title="123">
</item>
<item
android:id="@+id/item3"
android:icon="@android:drawable/ic_menu_info_details"
android:showAsAction="ifRoom|withText"
android:title="123">
</item>
<item
android:id="@+id/item4"
android:icon="@android:drawable/ic_menu_view"
android:showAsAction="never"
android:title="123">
</item>
</menu>
[/syntax]

[syntax=java]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_menu, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

return super.onOptionsItemSelected(item);
}
[/syntax]
Вложения
Снимок.PNG
Снимок.PNG (38.62 КБ) 9287 просмотров

finberg
Сообщения: 51
Зарегистрирован: 11 мар 2013, 14:20

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение finberg » 20 дек 2014, 10:41

С Genymotion не работал, но на скрине не вижу у вас экшенбара. Может тема стоит без экшенбара?
И еще вопросик,
<item
android:id="@+id/item1"
android:showAsAction="always"
android:title="123">
</item>
стоит showAsAction="always", а иконка не указана, интересно, что он будет отбражать....

Аватара пользователя
Yennefer
Сообщения: 18
Зарегистрирован: 02 янв 2015, 17:36

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение Yennefer » 27 янв 2015, 14:33

Как заставить работать кнопку home в ActionBar?

Приложение написано на версии Android 2.3.и содержит одну Activity с несколькими фрагментами. Хочу использовать ActionBar для навигации между фрагментами и при нажатии на иконку в баре переходить на "домашний" фрагмент.

Вот так я устанавливаю кнопку home:

Код: Выделить всё

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main_activity);
  ...
  // Get action bar and set home button
  actionBar = getSupportActionBar();
  actionBar.setHomeButtonEnabled(true);
  actionBar.setIcon(R.drawable.my_icon);
  actionBar.setDisplayShowHomeEnabled(true);
}
ActionBar появляется, иконка приложения тоже, но она не кликабельна.
Поймать клик по кнопке пытаюсь в этом месте:

Код: Выделить всё

@Override
public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
    case android.R.id.home:
      Log.d(MY_LOG, "Home");
      return true;
  ...
  }
  return super.onOptionsItemSelected(item);
}
В лог ничего не записывается.
Если добавить к кнопке home стрелочку (actionBar.setDisplayHomeAsUpEnabled(true)), нажатие на нее начинает обрабатываться и сообщение записывастся в лог.

Почему так происходит и как решить эту проблему?
Правильно ли я пытаюсь использовать кнопку home и работать с ней? Возможно мне нужно использовать какой-то другой способ для навигации между фрагментами?

Nickolight
Сообщения: 1
Зарегистрирован: 10 янв 2015, 18:38

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение Nickolight » 25 фев 2015, 21:17

Все строки с кодом showAsAction="" - подчеркиваются красным курсивом. Все уроки делал без проблем, здесь просто тупик! =(

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение doter.ua » 25 фев 2015, 23:06

Nickolight писал(а):Все строки с кодом showAsAction="" - подчеркиваются красным курсивом. Все уроки делал без проблем, здесь просто тупик! =(
за 100+ уроков не научились смотреть на текст ошибки? пробовали навести курсор на подчеркнутый текст? http://stackoverflow.com/questions/1791 ... ys-ignored
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
Neustart
Сообщения: 6
Зарегистрирован: 20 фев 2015, 01:03

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение Neustart » 07 мар 2015, 23:25

Господа, если кто-либо как и я мучается по поводу, почему он все делает как в документации и как в этом уроке, а у него итемы отображаются в выпадающем списке под кнопкой настроек, то ответ мне дали тут !!!
http://www.cyberforum.ru/android-dev/th ... ost7312851

shirakz
Сообщения: 9
Зарегистрирован: 23 сен 2015, 20:33

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение shirakz » 04 мар 2016, 09:05

На моей оболочке MIUI 7 (Android 5) в стандартной теме вообще не было ActionBar
Чтобы он появился надо просто добавить в манифест:
android:theme="@android:style/Theme.Holo.Light"
вместо
android:theme="@style/AppTheme"

WKBAPKA
Сообщения: 32
Зарегистрирован: 03 янв 2014, 14:28

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение WKBAPKA » 13 мар 2016, 14:36

а у меня не получилось.
Asus ZeonFone 2, Android 5.1.1
Установил Min SDK Level 11
в верхней части экрана ничего не появляется. Только при длительном нажатии на меню появляется выбор меню. Вроде как и Action Bar :) но не такой как в уроке

WKBAPKA
Сообщения: 32
Зарегистрирован: 03 янв 2014, 14:28

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение WKBAPKA » 13 мар 2016, 14:38

shirakz писал(а):На моей оболочке MIUI 7 (Android 5) в стандартной теме вообще не было ActionBar
Чтобы он появился надо просто добавить в манифест:
android:theme="@android:style/Theme.Holo.Light"
вместо
android:theme="@style/AppTheme"
добавил, изменился стиль, но сам Action Bar не поменялся :)
наверное что то Asus напортачил

еще немного поковырялся, в итоге

Код: Выделить всё

  <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar"/>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
вот была в чем проблема
android:theme="@style/AppTheme.NoActionBar"
При создании нового модуля в Android Studio надо внимательно смотреть, что оно предлагает и просматривать манифест.

shirakz
Сообщения: 9
Зарегистрирован: 23 сен 2015, 20:33

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение shirakz » 14 мар 2016, 07:30

WKBAPKA писал(а): При создании нового модуля в Android Studio надо внимательно смотреть, что оно предлагает и просматривать манифест.
такое ощущение что манифест зависит от установленной оболочки над андроидом, или текущей темой на смартфоне

fuzzyman.1r
Сообщения: 1
Зарегистрирован: 24 май 2016, 15:31

Re: Урок 107. Android 3. ActionBar. Размещение элементов

Сообщение fuzzyman.1r » 24 май 2016, 15:52

Всем привет. Поломал голову уже с Action Bar, хочу, чтобы картинки отображались в баре, но все все что получается - список опции по кнопке с тремя точками. :(
При запуске на девайсе пишет следующую ошибку:
Could not find class 'android.widget.Toolbar', referenced from method com.hfad.bitsandpizzas.MainActivity.access$super

Может сталкивался кто-то с подобной проблемой? Буду очень благодарен за помощь в решении, хочется разобраться, пока самостоятельно не получилось.

Ответить