SlidingPaneLayout provides a horizontal, multi-pane layout for use at the top level
of a UI. A left (or first) pane is treated as a content list or browser, subordinate to a
primary detail view for displaying content.
Child views may overlap if their combined width exceeds the available width
in the SlidingPaneLayout. When this occurs the user may slide the topmost view out of the way
by dragging it, or by navigating in the direction of the overlapped view using a keyboard.
If the content of the dragged child view is itself horizontally scrollable, the user may
grab it by the very edge.
Thanks to this sliding behavior, SlidingPaneLayout may be suitable for creating layouts
that can smoothly adapt across many different screen sizes, expanding out fully on larger
screens and collapsing on smaller screens.
SlidingPaneLayout is distinct from a navigation drawer as described in the design
guide and should not be used in the same scenarios. SlidingPaneLayout should be thought
of only as a way to allow a two-pane layout normally used on larger screens to adapt to smaller
screens in a natural way. The interaction patterns expressed by SlidingPaneLayout imply
a physicality and direct information hierarchy between panes that does not necessarily exist
in a scenario where a navigation drawer should be used instead.
Appropriate uses of SlidingPaneLayout include pairings of panes such as a contact list and
subordinate interactions with those contacts, or an email thread list with the content pane
displaying the contents of the selected thread. Inappropriate uses of SlidingPaneLayout include
switching between disparate functions of your app, such as jumping from a social stream view
to a view of your personal profile - cases such as this should use the navigation drawer
pattern instead. (DrawerLayout implements this pattern.)
Like LinearLayout, SlidingPaneLayout supports
the use of the layout parameter layout_weight on child views to determine
how to divide leftover space after measurement is complete. It is only relevant for width.
When views do not overlap weight behaves as it does in a LinearLayout.
When views do overlap, weight on a slideable pane indicates that the pane should be
sized to fill all available space in the closed state. Weight on a pane that becomes covered
indicates that the pane should be sized to fill all available space except a small minimum strip
that the user may use to grab the slideable view and pull it back over into a closed state.