【发布时间】:2013-08-24 21:06:17
【问题描述】:
我正在使用以下方法通过显示/隐藏片段(在我的 NavigationDrawer 中)在片段之间进行切换。
protected void showFragment(int container, Fragment fragment, String tag, String lastTag, boolean addToBackStack ) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
if ( lastTag != null && !lastTag.equals("")) {
Fragment lastFragment = fragmentManager.findFragmentByTag( lastTag );
if ( lastFragment != null ) {
transaction.hide( lastFragment );
}
}
if ( fragment.isAdded() ) {
transaction.show( fragment );
}
else {
transaction.add( container, fragment, tag );
}
if ( addToBackStack ) {
transaction.addToBackStack( tag );
}
transaction.commit();
// set the active tag
activeFragTag = tag;
}
我不清楚的是当我显示或隐藏它时调用 Fragments 生命周期的哪个方法?(因为没有诸如 onShow() 或 onHide() 之类的方法,我不太确定用什么)。我想在显示和隐藏某个 Fragment 时执行特定操作。
【问题讨论】:
-
当你调用 Fragment.show() 之后,片段会触发
onCreate(),然后是onCreateDialog(),然后是onCreateView()
标签: android android-fragments lifecycle fragmenttransaction