Урок 107. Android 3. ActionBar. Размещение элементов
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Подскажите как можно реализовать вторую серую подпись в overflow menu ?
Пытаюсь как тут http://stackoverflow.com/questions/2250 ... -actionbar, но вторые сутки безрезультатно
Кстати у них там ошибка, нужно использовать:
app:showAsAction="never" вместо android:showAsAction="never"
Пытаюсь как тут 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
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Максимум, что удалось - это увидеть 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]
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
Re: Урок 107. Android 3. ActionBar. Размещение элементов
могу только этот пунктик разъяснить. В первом случае используется support v7 appcompat, а во втором никаких библиотек не используется (стандартный ActionBar).Atetc писал(а):app:showAsAction="never" вместо android:showAsAction="never"
Судя по тому что в гугле ничего стоящего не нашлось, то вероятно стандартными способами кастомизировать меню не получится.
Можно попробовать сделать кастомый итем с collapseActionView или кастромный ActionProvider. Но тут я ни разу не уверен, т.к. сам такое не пытался делать.
-
- Сообщения: 2
- Зарегистрирован: 12 июл 2014, 21:51
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Добрый день такой вопрс, есть несколько пунктов меню в ActionBar они всегда отображаются, хочу к ним добавить иконки, но как только я из добавляю пропадает title, как сделать чтобы они отображались вместе? Примерно так же как в приложении Tjournal когда заходишь в новость там отображается значок комментария и количество. Пробовал уже по всякому не работает никак.
в menu.xml вот так написано.
<item
android:title="Комментарии"
android:icon="@drawable/comment"
android:showAsAction="ifRoom|withText" />
в menu.xml вот так написано.
<item
android:title="Комментарии"
android:icon="@drawable/comment"
android:showAsAction="ifRoom|withText" />
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Всем привет!
Тут интересная штука вылезла со стандартным меню.
На всей устройствах все работает как обычно: оно отрывается либо по аппаратной кнопке меню, либо, если таковая отсутствует, то по кнопке с тремя вертикальными точками в actionbare справа (она появляется автоматически).
Но тут появилась железка: HTC Desire 816.
В ней, как утверждает пользователь, отсутствует и аппаратная кнопка "меню" и программная не появляется. Как побороть эту ситуацию красиво?
Тут интересная штука вылезла со стандартным меню.
На всей устройствах все работает как обычно: оно отрывается либо по аппаратной кнопке меню, либо, если таковая отсутствует, то по кнопке с тремя вертикальными точками в actionbare справа (она появляется автоматически).
Но тут появилась железка: HTC Desire 816.
В ней, как утверждает пользователь, отсутствует и аппаратная кнопка "меню" и программная не появляется. Как побороть эту ситуацию красиво?
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Если верить гуглу, то на нем стоит программная оболочка HTC Sense 6.0, возможно дело в ней. Я бы не стал ничего выдумывать, производители штопают свои надстройки для приманивания покупателей, а как доходит дело до поддержки, то все сдуваются. Конечно HTC солидная компания и косяки встречаются реже, чем у менее известных брендов, но все равно все эти оболочки - преступление против разработчиков. Юзер, который покупает экзотическую лопату с фирменными надстройками и фишками, должен быть готов к таким сюрпризам.dusshes писал(а):Всем привет!
Тут интересная штука вылезла со стандартным меню.
На всей устройствах все работает как обычно: оно отрывается либо по аппаратной кнопке меню, либо, если таковая отсутствует, то по кнопке с тремя вертикальными точками в actionbare справа (она появляется автоматически).
Но тут появилась железка: HTC Desire 816.
В ней, как утверждает пользователь, отсутствует и аппаратная кнопка "меню" и программная не появляется. Как побороть эту ситуацию красиво?
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Жалко пользователя... Хотелось бы помочь... Да и HTC достаточно распространенная марка в массах.
Интересно а можно как-то в программе понять:
1. Вывелась автоматическая кнопка меню в actionbare или нет?
2. Имеет ли устройство аппаратную кнопку меню?
Интересно а можно как-то в программе понять:
1. Вывелась автоматическая кнопка меню в actionbare или нет?
2. Имеет ли устройство аппаратную кнопку меню?
Re: Урок 107. Android 3. ActionBar. Размещение элементов
показывать точки всегда:
viewtopic.php?f=33&t=5082#p37156
viewtopic.php?f=33&t=5082#p37156
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Отлично! Спасибо!klblk писал(а):показывать точки всегда:
viewtopic.php?f=33&t=5082#p37156
Первый вопрос закрыт. Остался второй.
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Вечер добрый, подскажите пожалуйста, почему у меня при наличии следующих кодов, приложение вообще без меню?
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]
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 (38.62 КБ) 15714 просмотров
Re: Урок 107. Android 3. ActionBar. Размещение элементов
С Genymotion не работал, но на скрине не вижу у вас экшенбара. Может тема стоит без экшенбара?
И еще вопросик,
<item
android:id="@+id/item1"
android:showAsAction="always"
android:title="123">
</item>
стоит showAsAction="always", а иконка не указана, интересно, что он будет отбражать....
И еще вопросик,
<item
android:id="@+id/item1"
android:showAsAction="always"
android:title="123">
</item>
стоит showAsAction="always", а иконка не указана, интересно, что он будет отбражать....
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Как заставить работать кнопку home в ActionBar?
Приложение написано на версии Android 2.3.и содержит одну Activity с несколькими фрагментами. Хочу использовать ActionBar для навигации между фрагментами и при нажатии на иконку в баре переходить на "домашний" фрагмент.
Вот так я устанавливаю кнопку home:
ActionBar появляется, иконка приложения тоже, но она не кликабельна.
Поймать клик по кнопке пытаюсь в этом месте:
В лог ничего не записывается.
Если добавить к кнопке home стрелочку (actionBar.setDisplayHomeAsUpEnabled(true)), нажатие на нее начинает обрабатываться и сообщение записывастся в лог.
Почему так происходит и как решить эту проблему?
Правильно ли я пытаюсь использовать кнопку home и работать с ней? Возможно мне нужно использовать какой-то другой способ для навигации между фрагментами?
Приложение написано на версии 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);
}
Поймать клик по кнопке пытаюсь в этом месте:
Код: Выделить всё
@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 и работать с ней? Возможно мне нужно использовать какой-то другой способ для навигации между фрагментами?
-
- Сообщения: 1
- Зарегистрирован: 10 янв 2015, 18:38
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Все строки с кодом showAsAction="" - подчеркиваются красным курсивом. Все уроки делал без проблем, здесь просто тупик! =(
Re: Урок 107. Android 3. ActionBar. Размещение элементов
за 100+ уроков не научились смотреть на текст ошибки? пробовали навести курсор на подчеркнутый текст? http://stackoverflow.com/questions/1791 ... ys-ignoredNickolight писал(а):Все строки с кодом showAsAction="" - подчеркиваются красным курсивом. Все уроки делал без проблем, здесь просто тупик! =(
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Господа, если кто-либо как и я мучается по поводу, почему он все делает как в документации и как в этом уроке, а у него итемы отображаются в выпадающем списке под кнопкой настроек, то ответ мне дали тут !!!
http://www.cyberforum.ru/android-dev/th ... ost7312851
http://www.cyberforum.ru/android-dev/th ... ost7312851
Re: Урок 107. Android 3. ActionBar. Размещение элементов
На моей оболочке MIUI 7 (Android 5) в стандартной теме вообще не было ActionBar
Чтобы он появился надо просто добавить в манифест:
android:theme="@android:style/Theme.Holo.Light"
вместо
android:theme="@style/AppTheme"
Чтобы он появился надо просто добавить в манифест:
android:theme="@android:style/Theme.Holo.Light"
вместо
android:theme="@style/AppTheme"
Re: Урок 107. Android 3. ActionBar. Размещение элементов
а у меня не получилось.
Asus ZeonFone 2, Android 5.1.1
Установил Min SDK Level 11
в верхней части экрана ничего не появляется. Только при длительном нажатии на меню появляется выбор меню. Вроде как и Action Bar но не такой как в уроке
Asus ZeonFone 2, Android 5.1.1
Установил Min SDK Level 11
в верхней части экрана ничего не появляется. Только при длительном нажатии на меню появляется выбор меню. Вроде как и Action Bar но не такой как в уроке
Re: Урок 107. Android 3. ActionBar. Размещение элементов
добавил, изменился стиль, но сам Action Bar не поменялсяshirakz писал(а):На моей оболочке MIUI 7 (Android 5) в стандартной теме вообще не было ActionBar
Чтобы он появился надо просто добавить в манифест:
android:theme="@android:style/Theme.Holo.Light"
вместо
android:theme="@style/AppTheme"
наверное что то 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 надо внимательно смотреть, что оно предлагает и просматривать манифест.
Re: Урок 107. Android 3. ActionBar. Размещение элементов
такое ощущение что манифест зависит от установленной оболочки над андроидом, или текущей темой на смартфонеWKBAPKA писал(а): При создании нового модуля в Android Studio надо внимательно смотреть, что оно предлагает и просматривать манифест.
-
- Сообщения: 1
- Зарегистрирован: 24 май 2016, 15:31
Re: Урок 107. Android 3. ActionBar. Размещение элементов
Всем привет. Поломал голову уже с Action Bar, хочу, чтобы картинки отображались в баре, но все все что получается - список опции по кнопке с тремя точками.
При запуске на девайсе пишет следующую ошибку:
Could not find class 'android.widget.Toolbar', referenced from method com.hfad.bitsandpizzas.MainActivity.access$super
Может сталкивался кто-то с подобной проблемой? Буду очень благодарен за помощь в решении, хочется разобраться, пока самостоятельно не получилось.
При запуске на девайсе пишет следующую ошибку:
Could not find class 'android.widget.Toolbar', referenced from method com.hfad.bitsandpizzas.MainActivity.access$super
Может сталкивался кто-то с подобной проблемой? Буду очень благодарен за помощь в решении, хочется разобраться, пока самостоятельно не получилось.