Android фрагмент - Как сохранить состояния представлений во фрагменте, когда другой фрагмент помещается поверх него - PullRequest
130 голосов
/ 22 июля 2011

В Android, фрагмент (скажем, FragA) добавляется в backstack, а другой фрагмент (скажем, FragB) попадает на вершину.Теперь при ответном ударе FragA выходит на вершину и вызывается onCreateView().Теперь у меня было FragA в определенном состоянии, прежде чем FragB было выдвинуто поверх него.

Мой вопрос: как я могу восстановить FragA до его предыдущего состояния?Есть ли способ сохранить состояние (например, в Bundle) и если да, то какой метод мне следует переопределить?

Ответы [ 11 ]

0 голосов
/ 09 декабря 2014
private ViewPager viewPager;
viewPager = (ViewPager) findViewById(R.id.pager);
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {
            // on changing the page
            // make respected tab selected
            actionBar.setSelectedNavigationItem(position);
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
        }
    });
}

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    // on tab selected
    // show respected fragment view
    viewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...