Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Lost_Angel
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
#1

Нажатие на элемент меню в Actionbar - Программирование Android

13.11.2016, 13:07. Просмотров 399. Ответов 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. Кнопка "вверх" работате отлично и при нажатии занимает всю высоту, а вторая кнопка уже. В чем проблема? И как можно сделать чтобы эти промежутки исчезли? На рисунке ниже попытался показать проблему. Пытался в стилях ковырять, не разобрался(
Буду рад любым подсказкам в этом направлении. Спасибо!
0
Миниатюры
Нажатие на элемент меню в Actionbar  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2016, 13:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нажатие на элемент меню в Actionbar (Программирование Android):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Lost_Angel
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
13.11.2016, 18:47  [ТС] #16
это твой айкон? он лежит в дравабл?
Не мой) я его из стандартного андроида вытащил. Просто к себе в дравбл перекинул.
"@android:drawable/ic_menu_share" попробовал. Результат тот же.
0
Pablito
2489 / 1934 / 604
Регистрация: 12.05.2014
Сообщений: 6,793
Завершенные тесты: 1
13.11.2016, 21:27 #17
Цитата Сообщение от Паблито Посмотреть сообщение
а где сам Toolbar?
внутри AppBarLayout-а его не видно что-то
ало
0
Lost_Angel
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
13.11.2016, 22:58  [ТС] #18
а где сам 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
ExFau$t
293 / 269 / 47
Регистрация: 08.05.2012
Сообщений: 1,444
13.11.2016, 23:08 #19
только прописывал и всё?
0
Pablito
2489 / 1934 / 604
Регистрация: 12.05.2014
Сообщений: 6,793
Завершенные тесты: 1
13.11.2016, 23:14 #20
Цитата Сообщение от Lost_Angel Посмотреть сообщение
Так что имхо не в этом дело
даже имхо есть
прикол в том, что у меня на куче версий начиная с 16 и до 25 включительно такого не наблюдается
а это значит что ты не показываешь часть кода или разметки, которые оказывают влияние на поведение элементов меню

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

итак:
1. православные используют Toolbar, а AppBarLayout - это просто обертка над тулбаром, нужна для тени на 5+ андроидах и может еще для чего-то
2. зачем на AppBar-е theme?
3. от чего наследуется активити?
4. что в файле styles.xm? и не нужно самому решать что показать, а что можно вырезать, типа пацаны разберутся - можно копипастить все
0
Lost_Angel
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
14.11.2016, 20:06  [ТС] #21
зачем на AppBar-е theme?
Взял из другого проекта.
от чего наследуется активити?
AppCompatActivity. Пробовал ActionBarActivity - не помогло.
что в файле styles.xm?
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="actionBarStyle">@style/MyActionBar</item>
 
 
    </style>
 
    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
        <item name="android:background">@color/colorPrimary</item>
        <item name="background">@color/colorPrimary</item>
        <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
        <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
    </style>
    <style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance">
        <item name="android:textSize">16sp</item>
    </style>
    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
 
    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
 
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
П.с. попробовал кстати на других версиях адроида. Так вот на четвертых версиях при нажатии посвечивает квадрат, а на 5+ уже в круге.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2016, 20:06
Привет! Вот еще темы с ответами:

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

Нажатие на пункт меню срабатывает только со второго раза - Программирование Android
Может кто знает, почему нажатие на пункт меню срабатывает только со второго раза?

Нажатие на отдельный элемент Canvas - Программирование Android
Подскажите пожалуйста, как можно определить, что нажал на конкретный Path в Canvas? Допустим у меня есть канва, на которой несколько...

Не могу заставить OnItemClickListener, ловить нажатие на элемент списка ListView - Программирование Android
Пишу простенькое приложение по сбору цен на разные товары, сейчас пытаюсь оптимизировать часть кода который работает со списком, когда...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.11.2016, 20:06
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru