The MultiColumnHeader is a general purpose class that e.g can be used with the TreeView to create multi-column tree views and list views.
It supports resizing of columns widths by dragging and provides useful callbacks for reacting to user input.
Note that columns can be hidden by the user using the context menu of the MultiColumnHeader.
Terminology used in the API: The parameter name columnIndex is used for indices into the columns array in the MultiColumnHeaderState object. While the parameter name visibleColumnIndex refers to the currently visible column index shown in the MultiColumnHeader.