Android fragmentTransaction.hide和setVisibility之间的差异(消失);
将包含碎片的版面可见性设置为“已消失”和“碎片事务”。除了addToBackStack之外,隐藏(碎片)”和“碎片事务”之间有什么主要区别吗?Android fragmentTransaction.hide和setVisibility之间的差异(消失);,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,将包含碎片的版面可见性设置为“已消失”和“碎片事务”。除了addToBackStack之外,隐藏(碎片)”和“碎片事务”之间有什么主要区别吗?fragmentTransaction.hide(碎片) public void hideFragment(Fragment fragment, int transition, int transitionStyle) { if (DEBUG) Log.v(TAG, "hide: " + fragment); if (!fragment.m
fragmentTransaction.hide(碎片)
public void hideFragment(Fragment fragment, int transition, int transitionStyle) {
if (DEBUG) Log.v(TAG, "hide: " + fragment);
if (!fragment.mHidden) {
fragment.mHidden = true;
if (fragment.mView != null) {
Animator anim = loadAnimator(fragment, transition, true,
transitionStyle);
if (anim != null) {
anim.setTarget(fragment.mView);
// Delay the actual hide operation until the animation finishes, otherwise
// the fragment will just immediately disappear
final Fragment finalFragment = fragment;
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
if (finalFragment.mView != null) {
finalFragment.mView.setVisibility(View.GONE);
}
}
});
anim.start();
} else {
fragment.mView.setVisibility(View.GONE);
}
}
if (fragment.mAdded && fragment.mHasMenu && fragment.mMenuVisible) {
mNeedMenuInvalidate = true;
}
fragment.onHiddenChanged(true);
}
}
所以它的作用差不多,但是
- 支持动画
- 后援
- 将从
返回的Fragment#onCreateView()
视图设置为
,而不是容器GONE
- 如果你在菜单上添加了某样东西,我会小心的