             populateItems()
 
             let overflowVisible = UserDefaults.standard.bool(forKey: Constants.overflowExpandedUserDefaultsKey)
-            setOverflowItemsVisible(overflowVisible, animated: false)
+            setOverflowItemsVisible(overflowVisible && trailingItem == nil, animated: false)
             
             if overflowVisible {
                 rotateOverflowToggleItem(.vertical, animated: false)

        scrollView.translatesAutoresizingMaskIntoConstraints = false
        scrollView.delegate = self

        // Add padding at the end to account for overflow button
        let layoutDirection = UIView.userInterfaceLayoutDirection(for: semanticContentAttribute)
        switch layoutDirection {
        case .leftToRight:
            scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: Constants.stackButtonWidth)
        case .rightToLeft:
            scrollView.contentInset = UIEdgeInsets(top: 0, left: Constants.stackButtonWidth, bottom: 0, right: 0)
        }
    }


        return frame.width - scrollView.contentInset.left - scrollView.contentInset.right
    }

    fileprivate var trailingInset: CGFloat {
        if let trailingItem = trailingItem {
            trailingItem.sizeToFit()
            return trailingItem.bounds.size.width + Constants.trailingButtonMargin
        } else {
            return Constants.stackButtonWidth
        }
    }

    /// Returns true if any of the overflow items in the bar are currently hidden
    ///
