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

ViewPager - не удалять фрагмент при пролистывании - Программирование Android

13.04.2017, 21:13. Просмотров 227. Ответов 2

Здравствуйте всем. Есть viewPager с тремя фрагментами. Так как он сохраняет объекты слева и справа. Можно реализовать так, когда я листаю на третий фрагмент, первый не удалялся

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
public class MyPagerAdapter extends FragmentPagerAdapter {
    private static int NUM_ITEMS = 3;
    private Map<Integer, String> mFragmentTags;
    private FragmentManager mFragmentManager;
 
    public MyPagerAdapter(FragmentManager fragmentManager) {
        super(fragmentManager);
        mFragmentManager = fragmentManager;
        mFragmentTags = new HashMap<Integer, String>();
    }
 
    // Returns total number of pages
    @Override
    public int getCount() {
        return NUM_ITEMS;
    }
 
    // Returns the fragment to display for that page
    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return Fragment_language.newInstance();
            case 1:
                return Fragment_adapter_history.newInstance();
            case 2:
                return Fragment_nastroiki.newInstance();
            default:
                return null;
        }
    }
 
    // Returns the page title for the top indicator
    @Override
    public CharSequence getPageTitle(int position) {
        return "Page " + position;
    }
 
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        Object object = super.instantiateItem(container, position);
        if (object instanceof Fragment) {
            Fragment fragment = (Fragment) object;
            String tag = fragment.getTag();
            mFragmentTags.put(position, tag);
        }
        return object;
    }
 
    public Fragment getFragment(int position) {
        Fragment fragment = null;
        String tag = mFragmentTags.get(position);
        if (tag != null) {
            fragment = mFragmentManager.findFragmentByTag(tag);
        }
        return fragment;
    }
}
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
  mViewPager = (ViewPager) view.findViewById(R.id.Pager);
        //mViewPager.setAdapter(mSectionsPagerAdapter);
        mAdapterViewPager = new MyPagerAdapter(getActivity().getSupportFragmentManager());
 
 
        mViewPager.setAdapter(mAdapterViewPager);
 
        mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 
            @Override
            public void onPageSelected(int position) {
                Log.e("TEST", "onPageSelected, position = " + position);
              //  mSectionsPagerAdapter.notifyDataSetChanged();
            }
 
            @Override
            public void onPageScrolled(int position, float positionOffset,
                                       int positionOffsetPixels) {
                Fragment fragment = mAdapterViewPager.getFragment(position);
                if (fragment != null) {
                fragment.onResume();
                }
            }
 
            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2017, 21:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос ViewPager - не удалять фрагмент при пролистывании (Программирование Android):

ViewPager скрыть (удалить) фрагмент
Здравствуйте ув. Программисты. Есть ViewPager с тремя Screen Layout.xml. На...

Как динамически добавлять/удалять страницы ViewPager
Добрый день Всем! как можно добавлять и удалять страницы во ViewPager? ...

Скрывать Toolbar при пролистывании ListView
Подскажите как реализовать, когда листаешь ListView, что бы Toolbar исчезал?...

Обновление ViewPager при удалении элемента
Доброго времени суток! Проблема следующая. Имеется ViewPager с набором...

Ошибка при инициализации ListView в ViewPager
Всем доброго времени суток. Столкнулся с проблемой, в простом примере создания...

Обновление данных в ViewPager при перелистывании вкладок
Есть две вкладки (смотри картинку). На первой нажимаем кнопку плюс - пишем...

2
demixdn
288 / 235 / 70
Регистрация: 31.10.2016
Сообщений: 561
14.04.2017, 15:14 #2
Лучший ответ Сообщение было отмечено Kommersantt как решение

Решение

Java
1
mViewPager.setOffscreenPageLimit(2);
2
Kommersantt
17 / 17 / 24
Регистрация: 21.06.2014
Сообщений: 147
16.04.2017, 13:35  [ТС] #3
Спасибо, это работает для меня))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2017, 13:35
Привет! Вот еще темы с решениями:

Как победить подтормаживание при листании ViewPager со списками listview?
Как победить подтормаживание при листании ViewPager со списками listview? ...

При onBackPressed() фрагмент продолжает работать
Привет, я переопределил onBackPressed(), он показывает AlertDialog, но при этом...

Переход на фрагмент при открытии приложения
Доброго времени суток! Недавно начал заниматься разработкой Android приложения,...

Сохранить, восстановить данные при повороте (Фрагмент, Поток)
Помогите разобраться как сделать правильно поворот экрана. Есть МаинАктивити в...


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

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

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