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

Повторное создание фрагмента внутри фрагмента ViewPager

15.12.2016, 20:09. Просмотров 969. Ответов 4

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

Буду рад любым подсказкам по этому поводу!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2016, 20:09
Ответы с готовыми решениями:

Обновление фрагмента с ListView в ViewPager
Есть класс фрагмента, который заполняет адаптер: public class PageFragment extends Fragment...

Вызов фрагмента из фрагмента с использованием EventBus
Доброго времени суток! Можно ли использовать EventBus для того, что из Фрагмента 1 вызвать...

Вызов фрагмента с RecycleView из другого фрагмента
Добрый день! Написал код, который из одного фрагмента (А) через кнопку вызывает другой фрагмент...

Табы внутри фрагмента
Второй день пытаюсь найти удобный способ создать внутри фрагмента структуру с табами. В свою...

Ошибка в прокручиваемом списке внутри фрагмента
Большинство ошибок таки сумел подправить. Осталось последняя: linLayout - Главный лайаут Фрагмента...

4
Pablito
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
15.12.2016, 20:10 2
там, короче, надо что-то в коде поменять и все заработает
0
Lost_Angel
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
15.12.2016, 20:21  [ТС] 3
мне сюда выложить километр кода? Может конкретизируешь?

Добавлено через 4 минуты
вызов фрагмента [1] с ViewPager:
Java
1
this.getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new CallsAndSmsInformationFragment()).commit();
Фрагмент [1]:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
public class CallsAndSmsInformationFragment extends Fragment {
 
    View view;
    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;
    CallsFragment cfragment = new CallsFragment();
    SmsFragment sfragment = new SmsFragment();
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
 
        view = inflater.inflate(R.layout.fragment_callsandsms_information,null);
        
        setHasOptionsMenu(true);
        toolbar = (Toolbar) view.findViewById(R.id.toolbar);
 
        viewPager = (ViewPager) view.findViewById(R.id.viewpager);
        setupViewPager(viewPager);
 
        tabLayout = (TabLayout) view.findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
        return view;
    }
 
 
    @Override
    public void onDestroy() {
        cfragment.onDestroy();
        sfragment.onDestroy();
        super.onDestroy();
    }
 
    @Override
    public void onDestroyView() {
        cfragment.onDestroyView();
        sfragment.onDestroyView();
        super.onDestroyView();
    }
 
    @Override
    public void onDetach() {
        cfragment.onDetach();
        sfragment.onDetach();
        super.onDetach();
    }
    
 
    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
        adapter.addFragment(cfragment, "Звонки");
        adapter.addFragment(sfragment, "SMS");
        viewPager.setAdapter(adapter);
    }
 
    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();
 
        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }
 
        @Override
 
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }
 
        @Override
        public int getCount() {
            return mFragmentList.size();
        }
 
        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }
 
        @Override
        public CharSequence getPageTitle(int position) {
           // return null;
            return mFragmentTitleList.get(position);
        }
    }
 
 
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        menu.clear();
        inflater.inflate(R.menu.action_bar_fragment_share, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return true;
    }
}
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
18.12.2016, 13:51 4
Наверно надо использовать getChildFragmentManager вместо гетсупорт, вы же уже в фрагменте
0
Lost_Angel
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 27
18.12.2016, 15:50  [ТС] 5
проблема оказалась не в нем, а в классе FragmentPagerAdapter.
Он не удаляет вьюхи после завершения работы с ним.
0
18.12.2016, 15:50
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2016, 15:50

Как запустить activity внутри фрагмента
Как запустить activity внутри фрагмента?

Правильное создание динамического фрагмента с JSON
Господа, есть данный фрагмент, не могу его завести(Отметил ошибки комментариями). Также хочу...

обновление фрагмента
main_activity.xml &lt;android.support.design.widget.CoordinatorLayout...


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

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

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