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

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

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

Смена фрагмента в контейнере - Программирование Android

24.07.2015, 20:48. Просмотров 624. Ответов 7
Метки нет (Все метки)

Всем доброго вечера!

Проблема такая - есть Navigation Draver, по кликам в котором я хочу менять содержимое контейнера, т.е. реплейсить фрагменты. На данный момент 2 фрагмента. В каждом фрагменте есть TabHost, вкладки которого реализованы так же через фрагменты, т.е. через PageAdapter. При запуске приложения я помещаю в контейнер первый фрагмент. Далее при клике делаю replace на другой фрагмент, но при этом во втором фрагменте не отображаются вкладки. Если же устройство повернуть на 90 градусов, то вкладки появляются. Что мне делать и как мне быть? Уже 3 дня гуглю.

Надеюсь на вашу помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2015, 20:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Смена фрагмента в контейнере (Программирование Android):

Повторное создание фрагмента внутри фрагмента ViewPager - Программирование Android
Доброго времени суток! Использую внутри фрагмента элемент ViewPager, который сам внутри содержит еще два фрагмента-вкладки. При первом...

Открытие фрагмента NawDrawer - Программирование Android
Доброго времени суток форумчане, кто может помочь, нужно чтобы при открытии приложения открывался фрагмент как будто мы сами на него...

Доступ к виджету фрагмента - Программирование Android
Пытаюсь добавить фрагмент в контейнер и получить доступ к его кнопке frag1 = new Fragment1(); getSupportFragmentManager() ...

Реализация фрагмента кода - Программирование Android
Народ накидайте код в пару строк, реализовать не пойму как, Timer не хочет чет меня вообще слушаться - Нужен код который будет высчитывать...

Запуск активности из фрагмента - Программирование Android
Доброго всем. Возникла такая проблема, для запуска активности хоста из фрагмента по нажатию кнопки(mPlayButton), использую...

Ошибка в запуске Фрагмента с картинками - Программирование Android
Здравствуйте, уважаемые форумчане! Столкнулся с очень интересной проблемой, которую не могу сам который день решить, и вот обращаюсь к вам....

7
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
25.07.2015, 23:47 #2
А на 180 градусов если повернуть что будет?
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
26.07.2015, 01:07 #3
Цитата Сообщение от AndreyAlt86 Посмотреть сообщение
Проблема такая - есть Navigation Draver, по кликам в котором я хочу менять содержимое контейнера, т.е. реплейсить фрагменты. На данный момент 2 фрагмента. В каждом фрагменте есть TabHost, вкладки которого реализованы так же через фрагменты, т.е. через PageAdapter. При запуске приложения я помещаю в контейнер первый фрагмент. Далее при клике делаю replace на другой фрагмент, но при этом во втором фрагменте не отображаются вкладки. Если же устройство повернуть на 90 градусов, то вкладки появляются. Что мне делать и как мне быть? Уже 3 дня гуглю.
Смотрите внимательно, что замещаете и какой FragmentManager где вызываете... Так Вам вряд ли помогут, выложите код.
0
AndreyAlt86
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 4
26.07.2015, 07:26  [ТС] #4
При кликах по элементам NavigationDrawer я делаю так:
Java
1
2
3
4
5
6
7
8
9
10
11
                       if (i == 0) {
                            transaction = fragmentManager.beginTransaction();
                            transaction.replace(R.id.llContainer, new AllMyWIFragment());
                            transaction.commit();
                        }
 
                        if (i == 1) {
                            transaction = fragmentManager.beginTransaction();
                            transaction.replace(R.id.llContainer, new AllFindWIFragment());
                            transaction.commit();
                        }
fragmentManager = getSupportFragmentManager();

В createView фрагментов AllMyWIFragment и AllFindWIFragment вызывается функция initTabhost():
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
34
35
36
37
38
39
40
41
42
43
44
45
46
  @Override
    public void onAttach(Activity activity) {
        myContext=(FragmentActivity) activity;
        super.onAttach(activity);
    }
 
  private void initTabhost() {
        tabHost = (MaterialTabHost) rootView.findViewById(R.id.materialTabHost);
        pager = (ViewPager) rootView.findViewById(R.id.viewpager);
 
        // init view pager
        pagerAdapter = new GeneralViewPagerAdapter(myContext.getSupportFragmentManager());
        pager.setAdapter(pagerAdapter);
        pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                // when user do a swipe the selected tab change
                tabHost.setSelectedNavigationItem(position);
            }
        });
 
        tabHost.addTab(
                tabHost.newTab()
                        .setIcon(getResources().getDrawable(R.drawable.ic_star_outline_white_24dp))
                        .setTabListener(this)
        );
 
        tabHost.addTab(
                tabHost.newTab()
                        .setIcon(getResources().getDrawable(R.drawable.ic_schedule_white_24dp))
                        .setTabListener(this)
        );
 
        tabHost.addTab(
                tabHost.newTab()
                        .setIcon(getResources().getDrawable(R.drawable.ic_done_white_24dp))
                        .setTabListener(this)
        );
 
        tabHost.addTab(
                tabHost.newTab()
                        .setIcon(getResources().getDrawable(R.drawable.ic_highlight_remove_white_24dp))
                        .setTabListener(this)
        );
 
    }
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
26.07.2015, 11:35 #5
Мне кажется проблема в размере вкладок.
if (i == 0) а тут поменяйте на switch
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
26.07.2015, 12:36 #6
Цитата Сообщение от Rube Посмотреть сообщение
Мне кажется проблема в размере вкладок.
if (i == 0) а тут поменяйте на switch
Это не ошибка, но стиль программирования плохой... проверка заведомо ложного условия при выполнении первого

Не по теме:

просто пояснил, почему нужно использовать switch or if-else-if



Добавлено через 10 минут
Цитата Сообщение от AndreyAlt86 Посмотреть сообщение
При кликах по элементам NavigationDrawer я делаю так:
К сожалению, внутри фрагментов вкладки не инициализировал... Но внутри фрагментов вызывается
Java
1
getChildFragmentManager
К тому же, если вы устанавливаете вкладки из фрагмента, уберите старые.
Попробуйте вызвать методы invalidate(), requestLayout() у контейнера вкладок
0
AndreyAlt86
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 4
26.07.2015, 16:05  [ТС] #7
Но вроде как раз и инициализируются вкладки через initTabhosts?

Не совсем понял что вы имели ввиду под удалением старых вкладок?
0
AndreyAlt86
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 4
27.07.2015, 19:10  [ТС] #8
contedevel, Эти 2 метода не помогли ((
0
27.07.2015, 19:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2015, 19:10
Привет! Вот еще темы с ответами:

Обращение к элементам фрагмента из активити - Программирование Android
Есть необходимость в программе менять значение TextView находящегося во фрагменте. Фрагмент должен выводится в контейнер. И затем я...

Передача даных с фрагмента к фрагменту! - Программирование Android
Вопрос возможно глупый но все ж... Искал в инете но ответ на свой вопрос найти не смог. Есть активность которая является хостом для 2...

Не могу добратьс из фрагмента к Preference - Программирование Android
Хочу заполнить из фрагмента данные из Preference. Ругается в строке 39. Подчеркивает - MODE_PRIVATE Пишет - MODE_PRIVATE cannot be...

Ошибка при восстановлении фрагмента - Программирование Android
Привет) В общем вопрос такой. У меня есть активность навигации, из которой я взвываю нужный мне фрагмент. Проблема такая, когда я...


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

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

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