2013-07-21 61 views
0

我在一个片段活动中添加了几个片段,是否有方法可以在单击我的后退按钮后获取哪些片段当前对用户可见?跟踪当前显示的片段

我试图通过在首选项中保存当前片段的标签,然后在按下后退按钮时更新它。这是一个但乏味的,但它的作品。不过,我觉得最好使用系统提供的任何方法。

不幸的是onResume和onStart在这种情况下似乎不适用于碎片。

有没有更好的方法来处理这个问题?

+0

几个可能是可见的 - 或者你可以使用操作栏选项卡和可以为您管理此选项卡的监听器。 onStart和onResume以何种方式不起作用? – IanB

+0

没有启动和恢复不起作用,因为我没有后面的片段我只是在它前面放置另一个片段 – Amanni

+0

如果你动态地附加/分离片段,那么你必须自己管理它。基于静态碎片(xml)的方法是否适用于您的情况? – IanB

回答

0

我也面临这样的情况,我的工作: 我不喜欢这样写道:

片段活动的子类来管理push和pop

public class KFragmentActivity extends FragmentActivity{ 

private KFragment currentFragment; 


//add new fragment 
public void pushFragment(Class clz) { 

    //fragment = new fragement instance; 
    //hold the current instance 
    currentFragment = fragment; 
} 


// 
public void popTopFragment() { 
    getSupportFragmentManager().popBackStackImmediate(); 
    currentFragment = null; 
    int cnt = getSupportFragmentManager().getBackStackEntryCount(); 
    if (cnt > 0) { 
     String name = getSupportFragmentManager().getBackStackEntryAt(cnt - 1).getName(); 
        //hold current instance 
     currentFragment = (KFragment) getSupportFragmentManager().findFragmentByTag(name); 
     currentFragment.onBackFailed(null); 
    } 
    } 

}