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

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

Войти
Регистрация
Восстановить пароль
 
prokopov
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
#1

Создание ToolBar в Fragment - Программирование Android

16.03.2016, 00:31. Просмотров 1249. Ответов 8

Создаю активити на нем фрагмент, а в фрагменте должен быть ToolBar! Но его нет! Делаю так

Активити:

Java
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
29
30
31
32
33
public class MainGridActivity extends AppCompatActivity {
 
    private MainGridFragment mainGridFragment;
    private FragmentManager fragmentManager;
    private FragmentTransaction fragmentTransaction;
 
    private final String MAIN_DRID_FRAGMENT_TAG = "MAIN_DRID_FRAGMENT_TAG";
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        onInflateActivity();
 
 
 
    }
 
 
 
    private void onInflateActivity(){
        fragmentManager = getSupportFragmentManager();
        mainGridFragment = (MainGridFragment) fragmentManager.findFragmentByTag(MAIN_DRID_FRAGMENT_TAG);
        if(mainGridFragment == null){
            mainGridFragment = new MainGridFragment();
            fragmentManager.beginTransaction()
                    .add(R.id.main_grid_conteiner, mainGridFragment, MAIN_DRID_FRAGMENT_TAG)
                    .commit();
 
        }
    }
}

его леяут:



XML
1
2
3
4
5
6
7
8
9
10
11
<?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"
    >
 
    <include layout="@layout/main_tool_bar" />
 
 
</LinearLayout>

Фрагмент:

Java
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
29
30
31
32
33
public class MainGridFragment extends Fragment{
 
    private AppCompatActivity appCompatActivity;
 
 
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.main_grid_list, null);
    setToolBar();
   return v;
}
 
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.main_grid_menu, menu);
    super.onCreateOptionsMenu(menu, inflater);
}
 
 
public Toolbar generateToolBar(){
    LayoutInflater layoutInflater = getActivity().getLayoutInflater();
    View v = layoutInflater.inflate(R.layout.main_tool_bar, null);
 
    return (Toolbar)v;
}
 
private void setToolBar(){
    appCompatActivity = (AppCompatActivity) getActivity();
    appCompatActivity.setSupportActionBar(generateToolBar());
 
    setHasOptionsMenu(true);
}
}

XML
1
2
3
4
5
6
7
8
9
10
11
<?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"
    >
 
    <include layout="@layout/main_tool_bar" />
 
 
</LinearLayout>

Сам ToolBar:

XML
1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_tool_bar"
    style="@style/main_tool_bar"
    >
</android.support.v7.widget.Toolbar>
высоту/ширену задаю в стилях !

Вроде все так! Может что-то пропустил? Подскажите в чем ошибка моя !! Спасибо!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2016, 00:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание ToolBar в Fragment (Программирование Android):

Обновление fragment из другого fragment - Программирование Android
Добрый вечер всем!! Подскажите пожалуйста как обновить один фрагмент из другого (а именно TextView и ArrayAdapter)?

Fragment - Программирование Android
Eсть Activity состоящий из ActionBar в котором две вкладки, каждая из них это Fragment. Не пойму как при переходе ко второй вкладке...

Анимация Fragment - Программирование Android
Здравствуйте, такой вопрос. как прикрутить эту анимацию: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;alpha ...

Вызов Fragment - Программирование Android
Здравствуйте, есть такая задача. есть main класс ActionBarActivity который из обычно класса можно вызывать как...

SwipeRefreshLayout + Fragment - Программирование Android
Имеется mainActivity c &lt;android.support.v4.widget.SwipeRefreshLayout ...

WebView in Fragment - Программирование Android
Как использовать WebView во фрагменте? Возвращаются слои в зависимости от номера фрагмента Я их листаю, меняется содержимое,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 472
16.03.2016, 01:09 #2
Вообще-то toolbar создается не в фрагменте, а в активити
prokopov
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
16.03.2016, 01:11  [ТС] #3
OlegJV, он может создаваться и в активти и в фрагменте !
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,742
Завершенные тесты: 1
16.03.2016, 11:10 #4
поместить тулбар во фрагмент можно, но это не кошерно и глупо
в идеале есть активити в которой тулбар и под тулбаром какой-то лаяут
и этот лаяут используется как контейнер для фрагментов

если нужно делать свое меню для каждого фрагмента то можно почитать тут
prokopov
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
16.03.2016, 12:57  [ТС] #5
Паблито, И если при открытии другого фрагмента менять вид ToolBar так лучше будет, чем каждый раз создавать новый ToolBar для каждого фрагмента ?
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,742
Завершенные тесты: 1
16.03.2016, 13:00 #6
что значит менять вид?
prokopov
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
16.03.2016, 13:02  [ТС] #7
Паблито, ну на пример: у меня на одном активити меняется 3 фрагмента и в одном с трех, на ToolBar должна появится новая кнопка, которой при других фрагментах нет!
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 584
16.03.2016, 13:07 #8
prokopov, button.setVisible(true);
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,742
Завершенные тесты: 1
16.03.2016, 13:12 #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
если кнопка имеется ввиду новый пункт меню - то читай ссылку которую я дал, внимательно читай
если надо что-то втулить не в меню, а именно в разметку тулбара то ничего не мешает в любом фрагменте писать так
Java
1
ActionBar toolbar = ((AppCompatActivity) getActivity()).getSupportActionBar();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2016, 13:12
Привет! Вот еще темы с ответами:

TextView and Fragment - Программирование Android
Доброго времени суток . Очень странная проблема, в классе extends Fragment есть кнопка и текст вью , при нажатии на кнопку вызываю ...

Fragment and context - Программирование Android
Есть шерлокбар. Два таба у него. Каждому табу привязан свой фрагмент через tabListener. Хочу чтобы в первом табе...

Список из fragment - Программирование Android
Гуру, как подобное сделать? ЕСТЬ: Большой LinearLayout в который надо добавлять разные &quot;блоки&quot; Каждый &quot;блок&quot; оформлен как...

Fragment и ListView - Программирование Android
Задача необходимо сделать 2 фрагмента в 1-находится Listview в нем кнопки подгружаемые из файла, во 2 фрагменте описание как сделать так...


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

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

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