Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Lost_Angel
1 / 1 / 1
Регистрация: 06.12.2011
Сообщений: 27
#1

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

13.11.2016, 13:07. Просмотров 551. Ответов 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 при её нажатие
Здравствуйте! У меня на ActionBar должна быть иконка для включения и...

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

Свайп меню actionbar
есть код класса main public class main extends ActionBarActivity { ...

Не отображается пункт меню в ActionBar
Приветствую, Сделал меню &lt;menu...

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

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

20
Lost_Angel
1 / 1 / 1
Регистрация: 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
14.11.2016, 20:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2016, 20:06
Привет! Вот еще темы с решениями:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

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