Fragment 的 EditTexts 被替换时触发
Fragment's EditTexts are triggered when it is replaced
所以,我遇到了这个问题:我正在初始化一个片段 - AddingTaskFragment
这是代码:
正在初始化 AddingTaskFragment
private void initFragment()
{
// Get fragment manager
FragmentManager fm = getSupportFragmentManager();
// Begin transaction
FragmentTransaction ft = fm.beginTransaction();
// Create the Fragment and add
addingTaskFragment = new AddingTaskFragment();
ft.add(R.id.fragment_task_type_container, addingTaskFragment, "addTaskFragment");
// ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
// Commit the changes
ft.commit();
}
而且效果很好
但是随后,我调用了一些事件,将这个片段替换为另一个片段 (AddingScheduleFragment
).
正在替换片段
@Override
public void onScheduleTypePick()
{
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
// Create the fragment and attach book index
addingScheduleFragment = new AddingScheduleFragment();
// Replace the book list with the description
ft.replace(R.id.fragment_task_type_container, addingScheduleFragment, "addScheduleFragment");
ft.addToBackStack(null);
ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
ft.commit();
}
当我从堆栈中弹出我之前的片段 (AddingTaskFragment
) 时。我所有的 EditViews
都在获得焦点。
返回上一个片段
@Override
public void onTaskTypePick()
{
getSupportFragmentManager().popBackStack();
}
有什么问题吗?为什么会这样?感谢您的回答。
重要提示:当我用新对象替换 AddingTaskFragent 时,一切正常。
所以,我自己解决了这个问题。而是找到了类似的。
afterTextChanged() callback being called without the text being actually changed
第二次附加片段时(由于 .replace()
方法),它正在恢复视图的先前状态。然后触发所有 textChangeListeners。
所以,我遇到了这个问题:我正在初始化一个片段 - AddingTaskFragment
这是代码:
正在初始化 AddingTaskFragment
private void initFragment()
{
// Get fragment manager
FragmentManager fm = getSupportFragmentManager();
// Begin transaction
FragmentTransaction ft = fm.beginTransaction();
// Create the Fragment and add
addingTaskFragment = new AddingTaskFragment();
ft.add(R.id.fragment_task_type_container, addingTaskFragment, "addTaskFragment");
// ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
// Commit the changes
ft.commit();
}
而且效果很好AddingScheduleFragment
).
正在替换片段
@Override
public void onScheduleTypePick()
{
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
// Create the fragment and attach book index
addingScheduleFragment = new AddingScheduleFragment();
// Replace the book list with the description
ft.replace(R.id.fragment_task_type_container, addingScheduleFragment, "addScheduleFragment");
ft.addToBackStack(null);
ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
ft.commit();
}
当我从堆栈中弹出我之前的片段 (AddingTaskFragment
) 时。我所有的 EditViews
都在获得焦点。
返回上一个片段
@Override
public void onTaskTypePick()
{
getSupportFragmentManager().popBackStack();
}
有什么问题吗?为什么会这样?感谢您的回答。
重要提示:当我用新对象替换 AddingTaskFragent 时,一切正常。
所以,我自己解决了这个问题。而是找到了类似的。
afterTextChanged() callback being called without the text being actually changed
第二次附加片段时(由于 .replace()
方法),它正在恢复视图的先前状态。然后触发所有 textChangeListeners。