背景片段上的 Edittext 仍然可编辑

Edittext on background fragment still editable

我在对多个片段使用 EditText 时遇到问题。我有两个片段:FragmentOne 和 FragmentTwo,每个片段都有 EditText。 在 FragmentOne 之上添加 FragmentTwo 之后:

android.support.v4.app.FragmentManager fragmentManager =getActivity().getSupportFragmentManager()
fragmentManager.beginTransaction().add(R.id.frame,new FragmentTwo()).addToBackStack(null).commit;

当我按键盘上的 Enter 键时,光标转到 FragmentOne 上的 EditText。如何解决?类似的问题是当背景片段仍然可以点击时,但我已经解决了。这个问题怎么办?

那是因为你不是hiding/removing上一个片段。在添加新片段之前识别上一个片段并隐藏它。

fragmentManager.beginTransaction().add(R.id.frame,new FragmentTwo()).addToBackStack(null).commit;

这应该是

fragmentManager.beginTransaction().add(R.id.frame,new FragmentTwo()).hide([current fragment]).addToBackStack(null).commit;

如果您为片段命名,则可以通过

找到该片段
fragmentManager.findFragmentByName("fragname");

我也遇到了这个问题。我有一个父片段,我显示和隐藏一个子片段。父片段中有一个 editText,它最终位于子片段的后面。在显示子片段时,我进入了片段布局并将其视图设置为消失,这样就移除了焦点。当然,如果我要隐藏子片段,那么布局将再次可见。