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

Toolbar как отслеживать кнопку "стрелка назад" - Программирование Android

09.11.2016, 13:01. Просмотров 1849. Ответов 6
Метки нет (Все метки)

Всем привет, работаю с Toolbar.
Задача такая:
1. по клику в NavigationView, открываю Фрагмент.
2. в открытом фрагменте, загрузить другой фрагмент и у него должна быть стрелка, вернуться к предыдущему фрагменту.(а не открывать NavigationView).
Как вообще эту кнопку отслеживать? которая в ToolBar. она всегда открывает NavigationView. или я чего не углядел.
0
Миниатюры
Toolbar как отслеживать кнопку "стрелка назад"   Toolbar как отслеживать кнопку "стрелка назад"  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2016, 13:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Toolbar как отслеживать кнопку "стрелка назад" (Программирование Android):

Как обработать нажатие кнопки "Назад", чтобы открывался рекламный баннер?
Требуется помощь. Начал осваивать это все недавно. Расскажу суть идеи: создав...

Как сделать приложение полноэкранным и убрать вспомогательные кнопки "назад, главный экран."
Здравствуйте, Можно ли сделать приложение на весь экран, и убрать от туда...

Сворачивание приложения при нажатии кнопки "Назад"
Как сделать, чтобы при нажатии кнопки "назад" приложение не закрывалось, а...

Admob interstitial. Запретить закрытие кнопкой "назад"
Как сделать так, чтобы межстраничное объявление закрывалось только нажатием на...

Выход пользователя по клавише "назад" из Activity, вызванного методом startActivityForResult
Здравствуйте. Ситуация такая. Из MainActivity вызывается другое Activity...

В созданном браузере при нажатии кнопки "Назад" выходит из приложения
Всем привет! Недавно начал изучать как разрабатывать приложения под Android....

6
TonyBicbaev
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 133
10.11.2016, 10:40  [ТС] #2
Вроде нашел решение кому интересно
переопределил в каждом фрагменте toobar и повесил клик
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
        assert toolbar != null;
 
       toolbar.setHomeAsUpIndicator(R.drawable.ic_action_goleft);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Fragment fragment = null;
                Class fragmentClass = null;
                fragmentClass = MenuActivity.class;
                try {
                    fragment = (Fragment) fragmentClass.newInstance();
 
                } catch (Exception e) {
                    e.printStackTrace();
                }
                menuFragment = (MenuActivity) fragment;
              
                FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
                fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();
            }
        });
2
TonyBicbaev
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 133
18.11.2016, 10:20  [ТС] #3
Возник еще вопрос
Как мне прикрепить Spinner с левого края? как в ВК.
0
Миниатюры
Toolbar как отслеживать кнопку "стрелка назад"  
androbro
340 / 301 / 67
Регистрация: 17.10.2014
Сообщений: 887
18.11.2016, 16:50 #4
TonyBicbaev,del

Добавлено через 8 минут
ну не хочет так, пусть будет del

Добавлено через 1 час 56 минут
ну и del с вами
1
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
18.11.2016, 17:05 #5
XML
1
2
3
4
5
6
7
8
9
  <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorPrimary">
        <Spinner
            android:entries="@array/spinnerItems"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </android.support.v7.widget.Toolbar>
тема приложения естественно NoActionBar

Добавлено через 8 минут
короче говоря - спиннер надо не через меню делать, а добавлять программно либо прямо через xml
кэп подсказывает, что у тулбара есть метод addView()

только что лдя интереса проверил добавление программно и через xml - все работает
2
fraley
110 / 110 / 43
Регистрация: 24.05.2015
Сообщений: 329
20.11.2016, 12:40 #6
Цитата Сообщение от TonyBicbaev Посмотреть сообщение
Вроде нашел решение кому интересно
переопределил в каждом фрагменте toobar и повесил клик
Есть более эффективное решение, при стандартном условии, что есть основное активити в нем FrameLayout с транзакциями фрагментов. Таким образом достаточно только в том же MainActivity добавить код ниже.
Естественно чтоб все это работало, фрагменты надо заменять с addToBackStack.

1)В активити наследуем интерфейс FragmentManager.OnBackStackChangedListener
2)Присваеваем слушателе к FragmentManager :
Java
1
fragmentManager.addOnBackStackChangedListener(this);
3)И соответственно имплементируем метод onBackStackChanged()
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Override
    public void onBackStackChanged() {
        int count = getSupportFragmentManager().getBackStackEntryCount();
        if (count > 0) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true); // show back button
            toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    onBackPressed();
                }
            });
        } else {
            getSupportActionBar().setDisplayHomeAsUpEnabled(false);//show hamburger
            toggle.syncState();
            toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    drawer.openDrawer(GravityCompat.START);
                }
            });
        }
    }
1
TonyBicbaev
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 133
22.11.2016, 05:21  [ТС] #7
Паблито, да addView() в самый раз)
Чет я не додумался (

Добавлено через 8 часов 46 минут
Паблито, не получается стрелочку у него в белый цвет покрасить на версиях пониже
использую AppCompatSpinner
Java
1
 spinner.setSupportBackgroundTintList(new ColorStateList(new int[][]{new int[0]}, new int[]{0xffFFFFFF}));
не красит хоть убей

Добавлено через 53 секунды
Паблито, причем кнопки нормально красит, а спиннер не хочет.

Добавлено через 15 часов 35 минут
Получилось перекрасить применив тему к спиннеру

XML
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.AppCompatSpinner xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/spinnersCalls"
    android:theme="@style/customSpinnerTheme"
   >
 
</android.support.v7.widget.AppCompatSpinner>
XML
1
2
3
4
5
 <style name="customSpinnerTheme" parent="Theme.AppCompat">
        <item name="colorControlNormal">#eaeaea</item>
        <item name="colorControlActivated">#000000</item>
        <item name="colorControlHighlight">#000000</item>
    </style>
0
22.11.2016, 05:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2016, 05:21
Привет! Вот еще темы с решениями:

Как убрать кнопку "меню"?
Как убрать кнопку меню ?:umnik:...

Полное завершение работы приложения при нажатии навигационной кнопки "Назад"
Здравствуйте. Имеется приложение. При нажатии кнопки &quot;Домой&quot; приложение выходит...

Установить стрелку "назад" в action bar, что бы возвращаться к первому фрагменту
Добрый день.Это снова я) И новый вопрос, есть активити и несколько...

Предусмотреть функцию "Назад" для фрагментов
Добрый день! Как можно проще(главное не колхозно) сделать так чтобы после...


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

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

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