         if visible {
             scrollableStackView.addArrangedSubviews(overflowItems)
             scrollableStackView.addArrangedSubview(overflowToggleItem)
+
+            configureConstraints(for: overflowItems, in: stackView)
         } else {
-            overflowItems.forEach({ $0.removeFromSuperview() })
+            overflowItems.forEach({ item in
+                item.removeFromSuperview()
+                item.removeConstraints(item.constraints)
+            })
+
             stackView.addArrangedSubview(overflowToggleItem)
+        }
+    }
+
+    private func setOverflowToggleItemVisible(_ visible: Bool) {
+        overflowToggleItem.removeFromSuperview()
+
+        if visible {
+            stackView.addArrangedSubview(overflowToggleItem)
+            configureConstraints(for: [overflowToggleItem], in: stackView)
         }
     }
 }

    // MARK: - Actions

    @IBAction func handleButtonAction(_ sender: FormatBarItem) {
        formatter?.handleActionForIdentifier(sender.identifier!)
    }

    @IBAction func handleToggleButtonAction(_ sender: FormatBarItem) {


    struct Constants {
        static let fixedSeparatorMidPointPaddingX = CGFloat(5)
        static let fixedStackViewInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
        static let scrollableStackViewInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
        static let stackViewCompactSpacing = CGFloat(0)
        static let stackViewRegularSpacing = CGFloat(0)
        static let stackButtonWidth = CGFloat(44)
