Class NavigationSplitView
- All Implemented Interfaces:
Accessible,Buildable,ConstraintTarget,Proxy
AdwNavigationSplitView has two NavigationPage children: sidebar and
content, and displays them side by side.
When NavigationSplitView:collapsed is set to TRUE, it instead
puts both children inside an NavigationView. The
NavigationSplitView:show-content controls which child is visible
while collapsed.
See also OverlaySplitView.
AdwNavigationSplitView is typically used together with an 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, AdwNavigationSplitView changes the sidebar width
depending on its own width.
If possible, it tries to allocate a fraction of the total width, controlled
with the NavigationSplitView:sidebar-width-fraction property.
The sidebar also has minimum and maximum sizes, controlled with the
NavigationSplitView:min-sidebar-width and
NavigationSplitView:max-sidebar-width properties.
The minimum and maximum sizes are using the length unit specified with the
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 AdwNavigationSplitView, 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 NavigationView documentation for details.
Actions
AdwNavigationSplitView defines the same actions as AdwNavigationView, 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 setsNavigationSplitView:show-contenttoTRUE.
navigation.popdoesn't take any parameters and setsNavigationSplitView:show-contenttoFALSE.
AdwNavigationSplitView as GtkBuildable
The AdwNavigationSplitView implementation of the 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
AdwNavigationSplitView 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
AdwNavigationSplitView uses the GTK_ACCESSIBLE_ROLE_GROUP role.
- Since:
- 1.4
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classInner class implementing a builder pattern to construct a GObject with properties.static classNested classes/interfaces inherited from class org.gnome.gtk.Widget
Widget.DestroyCallback, Widget.DirectionChangedCallback, Widget.HideCallback, Widget.KeynavFailedCallback, Widget.MapCallback, Widget.MnemonicActivateCallback, Widget.MoveFocusCallback, Widget.QueryTooltipCallback, Widget.RealizeCallback, Widget.ShowCallback, Widget.StateFlagsChangedCallback, Widget.UnmapCallback, Widget.UnrealizeCallback, Widget.Widget$Impl, Widget.WidgetClassNested classes/interfaces inherited from class org.gnome.gobject.InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClassNested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClassNested classes/interfaces inherited from interface org.gnome.gtk.Accessible
Accessible.Accessible$Impl, Accessible.AccessibleInterfaceNested classes/interfaces inherited from interface org.gnome.gtk.Buildable
Buildable.Buildable$Impl, Buildable.BuildableIfaceNested classes/interfaces inherited from interface org.gnome.gtk.ConstraintTarget
ConstraintTarget.ConstraintTarget$Impl, ConstraintTarget.ConstraintTargetInterface -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new NavigationSplitView.NavigationSplitView(MemorySegment address) Create a NavigationSplitView proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected NavigationSplitViewasParent()Returns this instance as if it were its parent type.static NavigationSplitView.Builder<? extends NavigationSplitView.Builder> builder()ANavigationSplitView.Builderobject constructs aNavigationSplitViewwith the specified properties.booleanGets whether this NavigationSplitView is collapsed.@Nullable NavigationPageSets the content widget forself.doubleGets the maximum sidebar width forself.doubleGets the minimum sidebar width forself.booleanGets which page is visible when this NavigationSplitView is collapsed.@Nullable NavigationPageGets the sidebar widget forself.Gets the sidebar position forself.doubleGets the preferred sidebar width fraction forself.Gets the length unit for minimum and maximum sidebar widths.static @Nullable TypegetType()Get the GType of the NavigationSplitView classvoidsetCollapsed(boolean collapsed) Sets whether this NavigationSplitView is collapsed.voidsetContent(@Nullable NavigationPage content) Sets the content widget forself.voidsetMaxSidebarWidth(double width) Sets the maximum sidebar width forself.voidsetMinSidebarWidth(double width) Sets the minimum sidebar width forself.voidsetShowContent(boolean showContent) Sets which page is visible when this NavigationSplitView is collapsed.voidsetSidebar(@Nullable NavigationPage sidebar) Sets the sidebar widget forself.voidsetSidebarPosition(PackType position) Sets the sidebar position forself.voidsetSidebarWidthFraction(double fraction) Sets the preferred sidebar width as a fraction of the total width ofself.voidSets the length unit for minimum and maximum sidebar widths.Methods inherited from class org.gnome.gtk.Widget
actionSetEnabled, activateActionIfExists, activateDefault, activateWidget, addController, addCssClass, addMnemonicLabel, addTickCallback, allocate, childFocus, computeBounds, computeExpand, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, cssChanged, directionChanged, disposeTemplate, dragCheckThreshold, emitDestroy, emitDirectionChanged, emitHide, emitKeynavFailed, emitMap, emitMnemonicActivate, emitMoveFocus, emitQueryTooltip, emitRealize, emitShow, emitStateFlagsChanged, emitUnmap, emitUnrealize, errorBell, focus, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getBaseline, getCanFocus, getCanTarget, getChildVisible, getClipboard, getColor, getCssClasses, getCssName, getCursor, getDefaultDirection, getDirection, getDisplay, getFirstChild, getFocusable, getFocusChild, getFocusOnClick, getFontMap, getFontOptions, getFrameClock, getHalign, getHasTooltip, getHeight, getHexpand, getHexpandSet, getLastChild, getLayoutManager, getLimitEvents, getMapped, getMarginBottom, getMarginEnd, getMarginStart, getMarginTop, getMemoryLayout, getName, getNative, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPreferredSize, getPrevSibling, getPrimaryClipboard, getRealized, getReceivesDefault, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getTemplateChild, getTooltipMarkup, getTooltipText, getValign, getVexpand, getVexpandSet, getVisible, getWidth, grabFocus, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, moveFocus, observeChildren, observeControllers, onDestroy, onDirectionChanged, onHide, onKeynavFailed, onMap, onMnemonicActivate, onMoveFocus, onQueryTooltip, onRealize, onShow, onStateFlagsChanged, onUnmap, onUnrealize, pick, pick, queryTooltip, queueAllocate, queueDraw, queueResize, realize, removeController, removeCssClass, removeMnemonicLabel, removeTickCallback, root, setCanFocus, setCanTarget, setChildVisible, setCssClasses, setCursor, setCursorFromName, setDefaultDirection, setDirection, setFocusable, setFocusChild, setFocusOnClick, setFontMap, setFontOptions, setHalign, setHasTooltip, setHexpand, setHexpandSet, setLayoutManager, setLimitEvents, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setName, setOpacity, setOverflow, setParent, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setStateFlags, setTooltipMarkup, setTooltipText, setValign, setVexpand, setVexpandSet, setVisible, shouldLayout, show, sizeAllocate, sizeAllocate, snapshot, snapshotChild, stateFlagsChanged, systemSettingChanged, translateCoordinates, triggerTooltipQuery, unmap, unparent, unrealize, unroot, unsetStateFlags, unsetStateFlagsMethods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newv, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withPropertiesMethods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class org.javagi.base.ProxyInstance
equals, handle, hashCodeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.gnome.gtk.Accessible
announce, getAccessibleParent, getAccessibleRole, getAtContext, getBounds, getFirstAccessibleChild, getNextAccessibleSibling, getPlatformState, resetProperty, resetRelation, resetState, setAccessibleParent, updateNextAccessibleSibling, updatePlatformState, updateProperty, updateRelation, updateStateMethods inherited from interface org.gnome.gtk.Buildable
getBuildableId
-
Constructor Details
-
NavigationSplitView
Create a NavigationSplitView proxy instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
NavigationSplitView
public NavigationSplitView()Creates a new NavigationSplitView.
-
-
Method Details
-
getType
Get the GType of the NavigationSplitView class- Returns:
- the GType
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuperkeyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName(). This will call the native function pointer of this virtual method in the typeclass of the parent type. -
getCollapsed
public boolean getCollapsed()Gets whether this NavigationSplitView is collapsed.- Returns:
- whether this NavigationSplitView is collapsed
- Since:
- 1.4
-
getContent
Sets the content widget forself.- Returns:
- the content widget
- Since:
- 1.4
-
getMaxSidebarWidth
public double getMaxSidebarWidth()Gets the maximum sidebar width forself.- Returns:
- the maximum width
- Since:
- 1.4
-
getMinSidebarWidth
public double getMinSidebarWidth()Gets the minimum sidebar width forself.- Returns:
- the minimum width
- Since:
- 1.4
-
getShowContent
public boolean getShowContent()Gets which page is visible when this NavigationSplitView is collapsed.- Returns:
- whether to show content when collapsed
- Since:
- 1.4
-
getSidebar
Gets the sidebar widget forself.- Returns:
- the sidebar widget
- Since:
- 1.4
-
getSidebarPosition
Gets the sidebar position forself.- Returns:
- the sidebar position for this NavigationSplitView
- Since:
- 1.7
-
getSidebarWidthFraction
public double getSidebarWidthFraction()Gets the preferred sidebar width fraction forself.- Returns:
- the preferred width fraction
- Since:
- 1.4
-
getSidebarWidthUnit
Gets the length unit for minimum and maximum sidebar widths.- Returns:
- the length unit
- Since:
- 1.4
-
setCollapsed
public void setCollapsed(boolean collapsed) Sets whether this NavigationSplitView is collapsed.When collapsed, the children are put inside an
NavigationView, otherwise they are displayed side by side.The
NavigationSplitView:show-contentcontrols which child is visible while collapsed.- Parameters:
collapsed- whether this NavigationSplitView is collapsed- Since:
- 1.4
-
setMaxSidebarWidth
public void setMaxSidebarWidth(double width) Sets the maximum sidebar width forself.Maximum width is affected by
NavigationSplitView:sidebar-width-unit.The sidebar widget can still be allocated with larger width if its own minimum width exceeds it.
- Parameters:
width- the maximum width- Since:
- 1.4
-
setMinSidebarWidth
public void setMinSidebarWidth(double width) Sets the minimum sidebar width forself.Minimum width is affected by
NavigationSplitView:sidebar-width-unit.The sidebar widget can still be allocated with larger width if its own minimum width exceeds it.
- Parameters:
width- the minimum width- Since:
- 1.4
-
setShowContent
public void setShowContent(boolean showContent) Sets which page is visible when this NavigationSplitView is collapsed.If set to
TRUE, the content widget will be the visible page whenNavigationSplitView:collapsedisTRUE; otherwise the sidebar widget will be visible.If the split view is already collapsed, the visible page changes immediately.
- Parameters:
showContent- whether to show content when collapsed- Since:
- 1.4
-
setSidebarPosition
Sets the sidebar position forself.If set to
GTK_PACK_START, the sidebar is displayed before the content, and the sidebar will be the root page when collapsed.If set to
GTK_PACK_END, the sidebar is displayed after the content, and the content will be the root page.- Parameters:
position- the new position- Since:
- 1.7
-
setSidebarWidthFraction
public void setSidebarWidthFraction(double fraction) Sets the preferred sidebar width as a fraction of the total width ofself.The preferred width is additionally limited by
NavigationSplitView:min-sidebar-widthandNavigationSplitView:max-sidebar-width.The sidebar widget can be allocated with larger width if its own minimum width exceeds the preferred width.
- Parameters:
fraction- the preferred width fraction- Since:
- 1.4
-
setSidebarWidthUnit
Sets the length unit for minimum and maximum sidebar widths.See
NavigationSplitView:min-sidebar-widthandNavigationSplitView:max-sidebar-width.- Parameters:
unit- the length unit- Since:
- 1.4
-
builder
ANavigationSplitView.Builderobject constructs aNavigationSplitViewwith the specified properties. Use the variousset...()methods to set properties, and finish construction withNavigationSplitView.Builder.build().- Returns:
- the builder object
-