从另一个片段中膨胀片段的正确方法是什么?

时间:2016-08-05 14:14:13

标签: java android fragment

我这样做了一段时间,这是正确的方法吗?

活动:

<legend>Combo box</legend>
                Add to Combo: <input type="text" name="txtCombo" id="txtCombo"/>
                <input type="button" value="Add" onclick="addCombo()">
                <br/>
                Combobox: <select name="combo" multiple id="combo"></select>
            </fieldset>

在另一个片段的某些听众中:

    public void toSettings(){
    Fragment_Settings frag = new Fragment_Settings();
    fm.beginTransaction()
            .replace(R.id.mainContainer, frag)
            .addToBackStack(null)
            .commit();
    }

2 个答案:

答案 0 :(得分:0)

您不需要.addToBackStack(null)只需删除该部分,您的片段就不会被添加到Backstack中。我还建议在替换方法中添加一个TAG,以防您以后想要检索该片段。这样的事情.replace(R.id.mainContainer, frag, TAG)

答案 1 :(得分:0)

这似乎是正确的,但我有一些建议。

  1. 如果您想从Fragment_Settings使用add方法而不是replaceaddToBackStack("tag of Fragment_Settings")而不是addToBackStack(null)支持以前的片段。
  2. newInstance模式比Fragment_Settings frag = new Fragment_Settings();更受欢迎。你可以看到一些解释。 http://www.androiddesignpatterns.com/2012/05/using-newinstance-to-instantiate.html
    Creating a Fragment: constructor vs newInstance()
  3. 为了避免在片段之间导航时重复代码,您可以使用管理器类提供组织添加,替换或弹出进程。 Here is my navigation manager class