Android 替换片段不会删除文本字段数据

Android replacing fragment doesn't remove text field data

假设我有 2 个片段,其中一个有一个文本输入字段。

我在主要 activity 中的片段之间切换:

public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.nav_new) {
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

            fragmentTransaction.replace(R.id.fragment_container, NewFragment(), fragment.getClass().getSimpleName())
                        .addToBackStack(Integer.toString(id))
                        .commit();
        } ...

注意我正在使用 framentTransactions replace 方法

在带有输入框的当前片段上,我输入了一些文本。然后我使用导航栏切换到一个新片段。我希望因为我正在使用 replace,旧片段不再存在。

我导航到新片段很好,但是当我按下后退按钮时,旧片段仍然有我之前输入的文本

为什么使用replace会出现这种情况?我是不是误解了碎片交易的运作方式?

片段的 onCreateView 方法在我按回键时不会再次调用,从而实质上重置片段吗?

当你切换到另一个片段时,你必须手动清除你的textfied

因为片段替换只是替换片段,但你的旧片段仍然存在,没有任何变化。