Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27

Нажатие на элемент меню в Actionbar

13.11.2016, 13:07. Показов 2897. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня!
Приделал через appbar actionbar к активити. Вот xml:

XML
1
2
3
4
5
6
<android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme">
 
</android.support.design.widget.AppBarLayout>
В onCreate добавляю кнопку ""Вверх":

Java
1
2
3
 ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
Создаю описание меню, чтобы засунуть в actionbar еще пару элементов (пока на примере один):
XML
1
2
3
4
5
6
7
8
9
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:sabd="http://schemas.android.com/apk/res-auto">
 
    <item
        android:id="@+id/action_share"
        android:title="@string/Share"
        android:icon="@drawable/ic_menu_share_holo_dark"
        sabd:showAsAction="ifRoom" />
</menu>
Создаю меню и вешаю обработчики нажатия:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.action_bar_menu, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
            case R.id.action_share:
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
На выходе получаю, то что хочу видеть. Но при нажатии на элемент меню "поделиться" граница подсветки этой кнопки меньше чем высота actionbar. Кнопка "вверх" работате отлично и при нажатии занимает всю высоту, а вторая кнопка уже. В чем проблема? И как можно сделать чтобы эти промежутки исчезли? На рисунке ниже попытался показать проблему. Пытался в стилях ковырять, не разобрался(
Буду рад любым подсказкам в этом направлении. Спасибо!
Миниатюры
Нажатие на элемент меню в Actionbar  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.11.2016, 13:07
Ответы с готовыми решениями:

Сменна иконки на ActionBar при её нажатие
Здравствуйте! У меня на ActionBar должна быть иконка для включения и отключения звука в приложении. Тоисть при нажатии на иконку она...

Не получается обработать нажатие на кнопку Home в ActionBar
в OnCreate прописал: ActionBar actionbar= getSupportActionBar(); actionbar.setDisplayHomeAsUpEnabled(true); Теперь хочу...

Свайп меню actionbar
есть код класса main public class main extends ActionBarActivity { String Log_Tag = &quot;Main.java&quot;; private...

20
8 / 12 / 0
Регистрация: 18.10.2016
Сообщений: 115
13.11.2016, 13:21
Думаю, что padding или margin есть у этой кнопки. Поставьте их в ноль, тогда отступы уйдут...
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
13.11.2016, 13:25
Цитата Сообщение от Lost_Angel Посмотреть сообщение
В чем проблема?
действительно, в чем проблема?
разработка не может идти дальше потому что пункт меню имеет отступы по краям?

Добавлено через 23 секунды
Цитата Сообщение от Antohsa Посмотреть сообщение
есть у этой кнопки.
читай внимательно - это пункт меню, а не кнопка
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
13.11.2016, 13:26
А с чего ты взял, что размер иконки твоей должен быть эквивалентен размеру акшионбара?
0
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
13.11.2016, 13:28  [ТС]
Да, это пункт меню. Но как для него настроить эти отступы?
Забить и идти дальше?
Все равно придется вернуться)
0
8 / 12 / 0
Регистрация: 18.10.2016
Сообщений: 115
13.11.2016, 13:30
Цитата Сообщение от Паблито Посмотреть сообщение
читай внимательно - это пункт меню, а не кнопка
Вопрос явно стилистический, внешнего вида, дизайна, поэтому особой разницы не вижу....
0
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
13.11.2016, 13:31  [ТС]
А с чего ты взял, что размер иконки твоей должен быть эквивалентен размеру акшионбара?
Я так не думал. Но почему-то "вверх" занимает всю высоту акшенбара.
0
8 / 12 / 0
Регистрация: 18.10.2016
Сообщений: 115
13.11.2016, 13:34
Lost_Angel, не надо забивать... доделай до конца...

Попробуй погуглить на тему getActionBar() и потомков...

Добавлено через 42 секунды
Цитата Сообщение от Lost_Angel Посмотреть сообщение
Но почему-то "вверх" занимает всю высоту акшенбара.
Только не "вверх", а на "назад"....
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
13.11.2016, 13:34
Цитата Сообщение от Lost_Angel Посмотреть сообщение
Но почему-то "вверх" занимает всю высоту акшенбара.
напиши письмо разработчикам библиотеки, делов на 10 минут, они 100% знают почему так задумано

Цитата Сообщение от Antohsa Посмотреть сообщение
поэтому особой разницы не вижу....
и в этом проблема, но бродить по темам и советовать что-либо, особо не разбираясь в вопросе - легко
1
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
13.11.2016, 13:38
Цитата Сообщение от Lost_Angel Посмотреть сообщение
Я так не думал. Но почему-то "вверх" занимает всю высоту акшенбара.
Потому что это стандартный элемент меню, сделанный прямыми руками (относительно прямыми)))).

Добавлено через 1 минуту
Цитата Сообщение от Antohsa Посмотреть сообщение
Только не "вверх", а на "назад"....
homeButton
0
8 / 12 / 0
Регистрация: 18.10.2016
Сообщений: 115
13.11.2016, 13:38
Цитата Сообщение от Паблито Посмотреть сообщение
и в этом проблема, но бродить по темам и советовать что-либо, особо не разбираясь в вопросе - легко
Мне помогают и я пытаюсь, в меру сил и возможностей. Ничего зазорного в этом не вижу...
0
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
13.11.2016, 13:40  [ТС]
Тогда другой вопрос. Как вообще отключить реакцию на нажатие (в виде изменения цвета)? Чтоб вообще не видеть подсветку.
0
8 / 12 / 0
Регистрация: 18.10.2016
Сообщений: 115
13.11.2016, 14:00
Lost_Angel, точно так же.. сначала надо найти элемент программно...
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
13.11.2016, 14:14
Цитата Сообщение от Antohsa Посмотреть сообщение
точно так же.. сначала надо найти элемент программно...
покажи мастер-класс, как это делается

а где сам Toolbar?
внутри AppBarLayout-а его не видно что-то
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
13.11.2016, 16:06
XML
1
        android:icon="@drawable/ic_menu_share_holo_dark"
это твой айкон? он лежит в дравабл?
попробуй сначала андроидовский шер айкон он лежит в андроиде.

Добавлено через 2 минуты
вот так: "@android:drawable/ic_menu_share"
0
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
13.11.2016, 18:47  [ТС]
это твой айкон? он лежит в дравабл?
Не мой) я его из стандартного андроида вытащил. Просто к себе в дравбл перекинул.
"@android:drawable/ic_menu_share" попробовал. Результат тот же.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
13.11.2016, 21:27
Цитата Сообщение от Паблито Посмотреть сообщение
а где сам Toolbar?
внутри AppBarLayout-а его не видно что-то
ало
0
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
13.11.2016, 22:58  [ТС]
а где сам Toolbar?
когда я его там прописывал было тоже самое.
Так что имхо не в этом дело.
Но если что выглядел он так:
XML
1
2
3
4
5
6
7
8
<android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
 
    </android.support.design.widget.AppBarLayout>
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
13.11.2016, 23:08
только прописывал и всё?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
13.11.2016, 23:14
Цитата Сообщение от Lost_Angel Посмотреть сообщение
Так что имхо не в этом дело
даже имхо есть
прикол в том, что у меня на куче версий начиная с 16 и до 25 включительно такого не наблюдается
а это значит что ты не показываешь часть кода или разметки, которые оказывают влияние на поведение элементов меню

тут каждый день кто-то доказывает, что "да я ничего не менял, больше никакого кода", а потом выясняется что там еще 10050 библиотек и 10 разметок с темами

итак:
1. православные используют Toolbar, а AppBarLayout - это просто обертка над тулбаром, нужна для тени на 5+ андроидах и может еще для чего-то
2. зачем на AppBar-е theme?
3. от чего наследуется активити?
4. что в файле styles.xm? и не нужно самому решать что показать, а что можно вырезать, типа пацаны разберутся - можно копипастить все
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.11.2016, 23:14
Помогаю со студенческими работами здесь

ActionBar, анимированная иконка меню
Здравствуйте, необходимо добавить анимированное изображение левее иконки меню в ActionBar`е. Подскажите, пожалуйста, в каком формате...

Не отображается пункт меню в ActionBar
Приветствую, Сделал меню &lt;menu xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; ...

Реализация меню требует API level 9, а actionbar-11. Что выбрать?
Реализация меню требует API level 9, а actionbar - 11. Разрываюсь на части из-за того, что не могу выбрать. Если реализовать менюшку, то...

Нажатие меню в другом приложении
Уважаемые форумчане. Вопрос такой. Мне нужно в чужой программе(в торрент клиенте) программно нажать на один из пунктов меню иконки в трее....

Итем меню не реагирует на нажатие
Добрый день, возник небольшой курьёз, не могу сообразить. Беру тулбар, закидываю менюшку, она отображается нормально, однако нажатие не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru