繁体   English   中英

切换片段:我应该添加一些动作吗?

[英]Switching fragments: should I add some action?

我有两个片段FirstFragment()SecondFragment()以及一个框架R.id.frame 在我的代码中,我需要经常在框架R.id.frame FirstFragment()SecondFragment()之间切换。 为此,我使用以下代码。

getSupportFragmentManager().beginTransaction()
    .replace(R.id.frame, new SecondFragment()).addToBackStack(null).commit();

根据最佳实践,此代码是否足够? 还是应该添加其他动作? 例如, 销毁旧片段 ,删除它或其他内容。

replace() = remove(FirstFragment) + add(SecondFragment)

一旦第一个片段被删除,它将有资格进行垃圾回收。 开发人员无需采取任何其他措施。

添加片段后,您应该使用show and hide。 每次在片段之间切换时,这不会重新创建片段。

private void addFragment(Fragment fragment, Class<? extends Fragment> tag) {
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.add(R.id.content, fragment, tag.getSimpleName()).addToBackStack(tag.getName()
        ).commit();
    }
private void showFragment(Fragment fragment) {
        if (fragment == null) {
            return;
        }
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.show(fragment).commit();
    }

private void hideFragment(Fragment fragment) {
        if (fragment == null) {
            return;
        }
        FragmentTransaction transaction = getSupportFragmentManager()
                .beginTransaction();
        transaction.hide(fragment).commit();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM