diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index e974c3463..b5d0cce3d 100755 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -219,7 +219,7 @@ public final class TaskEditFragment extends InjectingFragment FragmentManager fragmentManager = getChildFragmentManager(); List taskEditControlFragments = taskEditControlSetFragmentManager.getOrCreateFragments(this, model); - + int visibleSize = taskEditControlSetFragmentManager.getVisibleSize(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); for (int i = 0; i < taskEditControlFragments.size(); i++) { TaskEditControlFragment taskEditControlFragment = taskEditControlFragments.get(i); @@ -228,10 +228,13 @@ public final class TaskEditFragment extends InjectingFragment TaskEditControlSetFragmentManager.TASK_EDIT_CONTROL_FRAGMENT_ROWS[i], taskEditControlFragment, tag); + if (i >= visibleSize) { + fragmentTransaction.hide(taskEditControlFragment); + } } fragmentTransaction.commit(); - for (int i = taskEditControlFragments.size() - 1; i > 0; i--) { + for (int i = visibleSize - 1; i > 0; i--) { binding.controlSets.addView(inflater.inflate(R.layout.task_edit_row_divider, binding.controlSets, false), i); } diff --git a/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java b/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java index bb8234353..ee0d731a4 100644 --- a/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java +++ b/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java @@ -87,6 +87,7 @@ public class TaskEditControlSetFragmentManager { String hideAlwaysTrigger = context.getString(R.string.TEA_ctrl_hide_section_pref); for (numRows = 0; numRows < displayOrder.size(); numRows++) { if (displayOrder.get(numRows).equals(hideAlwaysTrigger)) { + displayOrder.remove(numRows); break; } } @@ -116,7 +117,7 @@ public class TaskEditControlSetFragmentManager { List fragments = new ArrayList<>(); FragmentManager fragmentManager = taskEditFragment.getChildFragmentManager(); - for (int i = 0; i < numRows; i++) { + for (int i = 0; i < displayOrder.size(); i++) { String tag = displayOrder.get(i); TaskEditControlFragment fragment = (TaskEditControlFragment) fragmentManager.findFragmentByTag(tag); @@ -164,4 +165,8 @@ public class TaskEditControlSetFragmentManager { throw new RuntimeException("Unsupported fragment"); } } + + public int getVisibleSize() { + return numRows; + } }