Android:从backstack弹出片段时调用哪种方法

时间:2015-07-22 06:33:29

标签: android android-fragments android-transitions

我研究过堆栈溢出但似乎没有找到解决方案。

我有一个mainActivity和几个frgaments,我正在做片段事务 <EditText android:drawableLeft="@drawable/ic_email" android:textAlignment="center" android:id="@+id/loginEmail" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ems="10" android:singleLine="true" android:inputType="textEmailAddress" android:imeOptions="actionNext" android:hint="Email"/> 方法和相应的片段被添加到backstack,但是我的问题是当我从后面的堆栈中弹出它时调用了回调我想在从堆栈中弹出它之前检查一下,onResume()方法在我调用时没有调用从后台堆栈中弹出

HELP

1 个答案:

答案 0 :(得分:7)

请执行以下操作:

getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener()
    {
        public void onBackStackChanged() 
        {                   
            // Your logic here               
        }
    });

即使添加了片段,也会在后端堆栈上的每次更改时调用此回调。如果您想知道片段何时被删除,请添加以下逻辑

Fragment someFragment = (Fragment)getSupportFragmentManager().findFragmentById(R.id.fragmentItem);

if (someFragment == null) {
   // this fragment was removed from back stack
}