按下后退按钮不会调用生命周期功能

时间:2016-01-22 10:41:12

标签: android android-fragments

我尝试使用This Link中的代码创建多个片段向导页面。在第一个片段上有EditText and Next Button。单击“下一步”按钮,我将禁用这些控件,然后导航到第二个片段(页面)。

现在,当我使用以下代码按下后退按钮时

mPager.setCurrentItem(mPager.getCurrentItem() - 1);

片段变回第一个活动。但EditText和Next按钮仍处于禁用状态。

我想在后退按钮点击时启用这些按钮。但是,在FirstFragment类的重写onResume()onStart()onViewStateRestored()函数中没有得到任何调用。

2 个答案:

答案 0 :(得分:0)

mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {
                if (position == 0) { // first fragment
                    // enable the views
                } 
                if (position == 1) { // Second fragment
                    // disable the views
                } 
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

使用 onPageSelected 根据您所在的位置禁用和启用按钮

答案 1 :(得分:0)

当您通过寻呼机(取决于您的活动页面设置)时,片段实际上并未暂停或禁用,它仍然存在。更改页面时,应将事件从适配器发送到片段。