adw.navigation_split_view
Module for [NavigationSplitView] class
Types 3
A widget presenting sidebar and content side by side or as a navigation view.
adw.navigation_split_view.NavigationSplitView has two adw.navigation_page.NavigationPage children: sidebar and content, and displays them side by side.
When adw.navigation_split_view.NavigationSplitView.collapsed is set to TRUE, it instead puts both children inside an adw.navigation_view.NavigationView. The adw.navigation_split_view.NavigationSplitView.showContent controls which child is visible while collapsed.
See also adw.overlay_split_view.OverlaySplitView.
adw.navigation_split_view.NavigationSplitView is typically used together with an adw.breakpoint.Breakpoint setting the collapsed property to TRUE on small widths, as follows:
<object class="AdwWindow">
<property name="width-request">280</property>
<property name="height-request">200</property>
<property name="default-width">800</property>
<property name="default-height">800</property>
<child>
<object class="AdwBreakpoint">
<condition>max-width: 400sp</condition>
<setter object="split_view" property="collapsed">True</setter>
</object>
</child>
<property name="content">
<object class="AdwNavigationSplitView" id="split_view">
<property name="sidebar">
<object class="AdwNavigationPage">
<property name="title" translatable="yes">Sidebar</property>
<property name="child">
<!-- ... -->
</property>
</object>
</property>
<property name="content">
<object class="AdwNavigationPage">
<property name="title" translatable="yes">Content</property>
<property name="child">
<!-- ... -->
</property>
</object>
</property>
</object>
</property>
</object>Sizing
When not collapsed, adw.navigation_split_view.NavigationSplitView changes the sidebar width depending on its own width.
If possible, it tries to allocate a fraction of the total width, controlled with the adw.navigation_split_view.NavigationSplitView.sidebarWidthFraction property.
The sidebar also has minimum and maximum sizes, controlled with the adw.navigation_split_view.NavigationSplitView.minSidebarWidth and adw.navigation_split_view.NavigationSplitView.maxSidebarWidth properties.
The minimum and maximum sizes are using the length unit specified with the adw.navigation_split_view.NavigationSplitView.sidebarWidthUnit.
By default, sidebar is using 25% of the total width, with 180sp as the minimum size and 280sp as the maximum size.
Header Bar Integration
When used inside adw.navigation_split_view.NavigationSplitView, adw.header_bar.HeaderBar will automatically hide the window buttons in the middle.
When collapsed, it also displays a back button for the content widget, as well as the page titles. See adw.navigation_view.NavigationView documentation for details.
Actions
adw.navigation_split_view.NavigationSplitView defines the same actions as adw.navigation_view.NavigationView, but they can be used even when the split view is not collapsed:
navigation.pushtakes a string parameter specifying the tag of the page to push. If it matches the tag of the content widget, it sets adw.navigation_split_view.NavigationSplitView.showContent toTRUE.navigation.popdoesn't take any parameters and sets adw.navigation_split_view.NavigationSplitView.showContent toFALSE.
adw.navigation_split_view.NavigationSplitView as gtk.buildable.Buildable
The adw.navigation_split_view.NavigationSplitView implementation of the gtk.buildable.Buildable interface supports setting the sidebar widget by specifying “sidebar” as the “type” attribute of a <child> element, Specifying “content” child type or omitting it results in setting the content widget.
CSS nodes
adw.navigation_split_view.NavigationSplitView has a single CSS node with the name navigation-split-view.
When collapsed, it contains a child node with the name navigation-view containing both children.
navigation-split-view
╰── navigation-view
├── [sidebar child]
╰── [content child]When not collapsed, it contains two nodes with the name widget, one with the .sidebar-pane style class, the other one with .content-view style class, containing the sidebar and content children respectively.
navigation-split-view
├── widget.sidebar-pane
│ ╰── [sidebar child]
╰── widget.content-pane
╰── [content child]Accessibility
adw.navigation_split_view.NavigationSplitView uses the gtk.types.AccessibleRole.Group role.
NavigationSplitViewGidBuilder builder() static nothrowGet builder for [adw.navigation_split_view.NavigationSplitView] Returns: New builder objectbool collapsed() @property nothrowGet `collapsed` property. Returns: Whether the split view is collapsed.void collapsed(bool propval) @property nothrowSet `collapsed` property. Params: propval = Whether the split view is collapsed.adw.navigation_page.NavigationPage content() @property nothrowGet `content` property. Returns: The content widget.void content(adw.navigation_page.NavigationPage propval) @property nothrowSet `content` property. Params: propval = The content widget.double maxSidebarWidth() @property nothrowGet `maxSidebarWidth` property. Returns: The maximum sidebar width.void maxSidebarWidth(double propval) @property nothrowSet `maxSidebarWidth` property. Params: propval = The maximum sidebar width.double minSidebarWidth() @property nothrowGet `minSidebarWidth` property. Returns: The minimum sidebar width.void minSidebarWidth(double propval) @property nothrowSet `minSidebarWidth` property. Params: propval = The minimum sidebar width.bool showContent() @property nothrowGet `showContent` property. Returns: Determines the visible page when collapsed.void showContent(bool propval) @property nothrowSet `showContent` property. Params: propval = Determines the visible page when collapsed.adw.navigation_page.NavigationPage sidebar() @property nothrowGet `sidebar` property. Returns: The sidebar widget.void sidebar(adw.navigation_page.NavigationPage propval) @property nothrowSet `sidebar` property. Params: propval = The sidebar widget.double sidebarWidthFraction() @property nothrowGet `sidebarWidthFraction` property. Returns: The preferred sidebar width as a fraction of the total width.void sidebarWidthFraction(double propval) @property nothrowSet `sidebarWidthFraction` property. Params: propval = The preferred sidebar width as a fraction of the total width.adw.types.LengthUnit sidebarWidthUnit() @property nothrowGet `sidebarWidthUnit` property. Returns: The length unit for minimum and maximum sidebar widths.void sidebarWidthUnit(adw.types.LengthUnit propval) @property nothrowSet `sidebarWidthUnit` property. Params: propval = The length unit for minimum and maximum sidebar widths.adw.navigation_page.NavigationPage getContent() nothrowSets the content widget for self. Returns: the content widgetdouble getMaxSidebarWidth() nothrowGets the maximum sidebar width for self. Returns: the maximum widthdouble getMinSidebarWidth() nothrowGets the minimum sidebar width for self. Returns: the minimum widthbool getShowContent() nothrowGets which page is visible when self is collapsed. Returns: whether to show content when collapsedadw.navigation_page.NavigationPage getSidebar() nothrowGets the sidebar widget for self. Returns: the sidebar widgetdouble getSidebarWidthFraction() nothrowGets the preferred sidebar width fraction for self. Returns: the preferred width fractionadw.types.LengthUnit getSidebarWidthUnit() nothrowGets the length unit for minimum and maximum sidebar widths. Returns: the length unitvoid setContent(adw.navigation_page.NavigationPage content = null) nothrowSets the content widget for self.void setSidebar(adw.navigation_page.NavigationPage sidebar = null) nothrowSets the sidebar widget for self.void setSidebarWidthFraction(double fraction) nothrowSets the preferred sidebar width as a fraction of the total width of self.void setSidebarWidthUnit(adw.types.LengthUnit unit) nothrowSets the length unit for minimum and maximum sidebar widths.Fluent builder implementation template for adw.navigation_split_view.NavigationSplitView
T collapsed(bool propval) nothrowSet `collapsed` property. Params: propval = Whether the split view is collapsed.T content(adw.navigation_page.NavigationPage propval) nothrowSet `content` property. Params: propval = The content widget. Returns: Builder instance for fluent chainingT maxSidebarWidth(double propval) nothrowSet `maxSidebarWidth` property. Params: propval = The maximum sidebar width.T minSidebarWidth(double propval) nothrowSet `minSidebarWidth` property. Params: propval = The minimum sidebar width.T showContent(bool propval) nothrowSet `showContent` property. Params: propval = Determines the visible page when collapsed.T sidebar(adw.navigation_page.NavigationPage propval) nothrowSet `sidebar` property. Params: propval = The sidebar widget. Returns: Builder instance for fluent chainingT sidebarWidthFraction(double propval) nothrowSet `sidebarWidthFraction` property. Params: propval = The preferred sidebar width as a fraction of the total width.T sidebarWidthUnit(adw.types.LengthUnit propval) nothrowSet `sidebarWidthUnit` property. Params: propval = The length unit for minimum and maximum sidebar widths.Fluent builder for adw.navigation_split_view.NavigationSplitView