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 class@NavigationPage children: sidebar and content, and displays them side by side.
When property@NavigationSplitView:collapsed is set to TRUE, it instead puts both children inside an class@NavigationView. The property@NavigationSplitView:show-content controls which child is visible while collapsed.
See also class@OverlaySplitView.
[adw.navigation_split_view.NavigationSplitView] is typically used together with an class@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 property@NavigationSplitView:sidebar-width-fraction property.
The sidebar also has minimum and maximum sizes, controlled with the property@NavigationSplitView:min-sidebar-width and property@NavigationSplitView:max-sidebar-width properties.
The minimum and maximum sizes are using the length unit specified with the property@NavigationSplitView:sidebar-width-unit.
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], class@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 class@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 property@NavigationSplitView:show-content to TRUE.
navigation.popdoesn't take any parameters and sets
property@NavigationSplitView:show-content to FALSE.
[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.
NavigationSplitView self()Returns `this`, for use in `with` statements.NavigationSplitViewGidBuilder builder()Get builder for [adw.navigationsplitview.NavigationSplitView] Returns: New builder objectvoid collapsed(bool propval) @propertySet `collapsed` property. Params: propval = Whether the split view is collapsed.adw.navigation_page.NavigationPage content() @propertyGet `content` property. Returns: The content widget.void content(adw.navigation_page.NavigationPage propval) @propertySet `content` property. Params: propval = The content widget.double maxSidebarWidth() @propertyGet `maxSidebarWidth` property. Returns: The maximum sidebar width.void maxSidebarWidth(double propval) @propertySet `maxSidebarWidth` property. Params: propval = The maximum sidebar width.double minSidebarWidth() @propertyGet `minSidebarWidth` property. Returns: The minimum sidebar width.void minSidebarWidth(double propval) @propertySet `minSidebarWidth` property. Params: propval = The minimum sidebar width.bool showContent() @propertyGet `showContent` property. Returns: Determines the visible page when collapsed.void showContent(bool propval) @propertySet `showContent` property. Params: propval = Determines the visible page when collapsed.adw.navigation_page.NavigationPage sidebar() @propertyGet `sidebar` property. Returns: The sidebar widget.void sidebar(adw.navigation_page.NavigationPage propval) @propertySet `sidebar` property. Params: propval = The sidebar widget.double sidebarWidthFraction() @propertyGet `sidebarWidthFraction` property. Returns: The preferred sidebar width as a fraction of the total width.void sidebarWidthFraction(double propval) @propertySet `sidebarWidthFraction` property. Params: propval = The preferred sidebar width as a fraction of the total width.adw.types.LengthUnit sidebarWidthUnit() @propertyGet `sidebarWidthUnit` property. Returns: The length unit for minimum and maximum sidebar widths.void sidebarWidthUnit(adw.types.LengthUnit propval) @propertySet `sidebarWidthUnit` property. Params: propval = The length unit for minimum and maximum sidebar widths.bool getCollapsed()Gets whether self is collapsed. Returns: whether self is collapsedadw.navigation_page.NavigationPage getContent()Sets the content widget for self. Returns: the content widgetdouble getMaxSidebarWidth()Gets the maximum sidebar width for self. Returns: the maximum widthdouble getMinSidebarWidth()Gets the minimum sidebar width for self. Returns: the minimum widthbool getShowContent()Gets which page is visible when self is collapsed. Returns: whether to show content when collapsedadw.navigation_page.NavigationPage getSidebar()Gets the sidebar widget for self. Returns: the sidebar widgetdouble getSidebarWidthFraction()Gets the preferred sidebar width fraction for self. Returns: the preferred width fractionadw.types.LengthUnit getSidebarWidthUnit()Gets the length unit for minimum and maximum sidebar widths. Returns: the length unitvoid setCollapsed(bool collapsed)Sets whether self is collapsed.void setContent(adw.navigation_page.NavigationPage content = null)Sets the content widget for self.void setMaxSidebarWidth(double width)Sets the maximum sidebar width for self.void setMinSidebarWidth(double width)Sets the minimum sidebar width for self.void setShowContent(bool showContent)Sets which page is visible when self is collapsed.void setSidebar(adw.navigation_page.NavigationPage sidebar = null)Sets the sidebar widget for self.void setSidebarWidthFraction(double fraction)Sets the preferred sidebar width as a fraction of the total width of self.void setSidebarWidthUnit(adw.types.LengthUnit unit)Sets the length unit for minimum and maximum sidebar widths.T collapsed(bool propval)Set `collapsed` property. Params: propval = Whether the split view is collapsed.T content(adw.navigation_page.NavigationPage propval)Set `content` property. Params: propval = The content widget. Returns: Builder instance for fluent chainingT maxSidebarWidth(double propval)Set `maxSidebarWidth` property. Params: propval = The maximum sidebar width.T minSidebarWidth(double propval)Set `minSidebarWidth` property. Params: propval = The minimum sidebar width.T showContent(bool propval)Set `showContent` property. Params: propval = Determines the visible page when collapsed.T sidebar(adw.navigation_page.NavigationPage propval)Set `sidebar` property. Params: propval = The sidebar widget. Returns: Builder instance for fluent chainingT sidebarWidthFraction(double propval)Set `sidebarWidthFraction` property. Params: propval = The preferred sidebar width as a fraction of the total width.T sidebarWidthUnit(adw.types.LengthUnit propval)Set `sidebarWidthUnit` property. Params: propval = The length unit for minimum and maximum sidebar widths.Fluent builder for [adw.navigation_split_view.NavigationSplitView]