Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android fragmentTransaction.hide和setVisibility之间的差异(消失);_Android_Android Layout_Android Fragments - Fatal编程技术网

Android fragmentTransaction.hide和setVisibility之间的差异(消失);

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

将包含碎片的版面可见性设置为“已消失”和“碎片事务”。除了addToBackStack之外,隐藏(碎片)”和“碎片事务”之间有什么主要区别吗?

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
    ,而不是容器
  • 如果你在菜单上添加了某样东西,我会小心的