Class ViewStack
- All Implemented Interfaces:
Accessible,Buildable,ConstraintTarget,Proxy
ViewSwitcher.
AdwViewStack is a container which only shows one page at a time.
It is typically used to hold an application's main views.
It doesn't provide a way to transition between pages.
Instead, a separate widget such as ViewSwitcher can be used with
AdwViewStack to provide this functionality.
AdwViewStack pages can have a title, an icon, an attention request, and a
numbered badge that ViewSwitcher will use to let users identify which
page is which. Set them using the ViewStackPage:title,
ViewStackPage:icon-name,
ViewStackPage:needs-attention, and
ViewStackPage:badge-number properties.
Unlike Stack, transitions between views can only be animated via
a crossfade and size changes are always interpolated. Animations are disabled
by default. Use ViewStack:enable-transitions to enable them.
AdwViewStack maintains a ViewStackPage object for each added child,
which holds additional per-child properties. You obtain the
ViewStackPage for a child with getPage(org.gnome.gtk.Widget) and you
can obtain a SelectionModel containing all the pages with
getPages().
AdwViewStack as GtkBuildable
To set child-specific properties in a .ui file, create
ViewStackPage objects explicitly, and set the child widget as a
property on it:
<object class="AdwViewStack" id="stack">
<child>
<object class="AdwViewStackPage">
<property name="name">overview</property>
<property name="title">Overview</property>
<property name="child">
<object class="AdwStatusPage">
<property name="title">Welcome!</property>
</object>
</property>
</object>
</child>
</object>
CSS nodes
AdwViewStack has a single CSS node named stack.
Accessibility
AdwViewStack uses the GTK_ACCESSIBLE_ROLE_TAB_PANEL for the stack pages
which are the accessible parent objects of the child widgets.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classViewStack.Builder<B extends ViewStack.Builder<B>>Inner 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 ViewStack.ViewStack(MemorySegment address) Create a ViewStack proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionAdds a child toself.Adds a child toself.Adds a child toself.addTitledWithIcon(Widget child, @Nullable String name, String title, String iconName) Adds a child toself.protected ViewStackasParent()Returns this instance as if it were its parent type.static ViewStack.Builder<? extends ViewStack.Builder> builder()AViewStack.Builderobject constructs aViewStackwith the specified properties.@Nullable WidgetgetChildByName(String name) Finds the child withnameinself.booleanGets whether this ViewStack uses a crossfade transition between pages.booleanGets whether this ViewStack is horizontally homogeneous.Gets theViewStackPageobject forchild.getPages()Returns aListModelthat contains the pages of the stack.intGets the transition animation duration forself.booleanGets whether a transition is currently running forself.static @Nullable TypegetType()Get the GType of the ViewStack classbooleanGets whether this ViewStack is vertically homogeneous.@Nullable WidgetGets the currently visible child ofself.@Nullable StringReturns the name of the currently visible child ofself.voidRemoves a child widget fromself.voidsetEnableTransitions(boolean enableTransitions) Sets whether this ViewStack uses a crossfade transition between pages.voidsetHhomogeneous(boolean hhomogeneous) Sets this ViewStack to be horizontally homogeneous or not.voidsetTransitionDuration(int duration) Sets the transition animation duration forself.voidsetVhomogeneous(boolean vhomogeneous) Sets this ViewStack to be vertically homogeneous or not.voidsetVisibleChild(Widget child) Makeschildthe visible child ofself.voidsetVisibleChildName(String name) Makes the child withnamevisible.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
-
ViewStack
Create a ViewStack proxy instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
ViewStack
public ViewStack()Creates a new ViewStack.
-
-
Method Details
-
getType
-
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. -
add
Adds a child toself.- Parameters:
child- the widget to add- Returns:
- the
ViewStackPageforchild
-
addNamed
Adds a child toself.The child is identified by the
name.- Parameters:
child- the widget to addname- the name forchild- Returns:
- the
AdwViewStackPageforchild
-
addTitled
Adds a child toself.The child is identified by the
name.Thetitlewill be used byViewSwitcherto representchild,so it should be short.- Parameters:
child- the widget to addname- the name forchildtitle- a human-readable title forchild- Returns:
- the
AdwViewStackPageforchild
-
addTitledWithIcon
public ViewStackPage addTitledWithIcon(Widget child, @Nullable String name, String title, String iconName) Adds a child toself.The child is identified by the
name.ThetitleandiconNamewill be used byViewSwitcherto representchild.- Parameters:
child- the widget to addname- the name forchildtitle- a human-readable title forchildiconName- an icon name forchild- Returns:
- the
AdwViewStackPageforchild - Since:
- 1.2
-
getChildByName
-
getEnableTransitions
public boolean getEnableTransitions()Gets whether this ViewStack uses a crossfade transition between pages.Use
ViewStack:transition-durationto control the duration, andViewStack:transition-runningto know when the transition is running.- Returns:
- whether to enable page transitions
- Since:
- 1.7
-
getHhomogeneous
public boolean getHhomogeneous()Gets whether this ViewStack is horizontally homogeneous.- Returns:
- whether this ViewStack is horizontally homogeneous
-
getPage
Gets theViewStackPageobject forchild.- Parameters:
child- a child of this ViewStack- Returns:
- the page object for
child
-
getPages
Returns aListModelthat contains the pages of the stack.This can be used to keep an up-to-date view. The model also implements
SelectionModeland can be used to track and change the visible page.- Returns:
- a
GtkSelectionModelfor the stack's children
-
getTransitionDuration
public int getTransitionDuration()Gets the transition animation duration forself.- Returns:
- the transition duration, in milliseconds
- Since:
- 1.7
-
getTransitionRunning
public boolean getTransitionRunning()Gets whether a transition is currently running forself.If a transition is impossible, the property value will be set to
TRUEand then immediately toFALSE, so it's possible to rely on its notifications to know that a transition has happened.- Returns:
- whether a transition is currently running
- Since:
- 1.7
-
getVhomogeneous
public boolean getVhomogeneous()Gets whether this ViewStack is vertically homogeneous.- Returns:
- whether this ViewStack is vertically homogeneous
-
getVisibleChild
Gets the currently visible child ofself.- Returns:
- the visible child
-
getVisibleChildName
Returns the name of the currently visible child ofself.- Returns:
- the name of the visible child
-
remove
Removes a child widget fromself.- Parameters:
child- the child to remove
-
setEnableTransitions
public void setEnableTransitions(boolean enableTransitions) Sets whether this ViewStack uses a crossfade transition between pages.- Parameters:
enableTransitions- whether to enable page transitions- Since:
- 1.7
-
setHhomogeneous
public void setHhomogeneous(boolean hhomogeneous) Sets this ViewStack to be horizontally homogeneous or not.If the stack is horizontally homogeneous, it allocates the same width for all children.
If it's
FALSE, the stack may change width when a different child becomes visible.- Parameters:
hhomogeneous- whether to make this ViewStack horizontally homogeneous
-
setTransitionDuration
public void setTransitionDuration(int duration) Sets the transition animation duration forself.Only used when
ViewStack:enable-transitionsis set toTRUE.- Parameters:
duration- the new duration, in milliseconds- Since:
- 1.7
-
setVhomogeneous
public void setVhomogeneous(boolean vhomogeneous) Sets this ViewStack to be vertically homogeneous or not.If the stack is vertically homogeneous, it allocates the same height for all children.
If it's
FALSE, the stack may change height when a different child becomes visible.- Parameters:
vhomogeneous- whether to make this ViewStack vertically homogeneous
-
setVisibleChild
Makeschildthe visible child ofself.- Parameters:
child- a child of this ViewStack
-
setVisibleChildName
Makes the child withnamevisible.See
ViewStack:visible-child.- Parameters:
name- the name of the child
-
builder
AViewStack.Builderobject constructs aViewStackwith the specified properties. Use the variousset...()methods to set properties, and finish construction withViewStack.Builder.build().- Returns:
- the builder object
-