Class ViewSwitcherBar

All Implemented Interfaces:
Accessible, Buildable, ConstraintTarget, Proxy

@Generated("org.javagi.JavaGI") public final class ViewSwitcherBar extends Widget implements Accessible, Buildable, ConstraintTarget

A view switcher action bar.

view-switcher-bar

An action bar letting you switch between multiple views contained in a ViewStack, via an ViewSwitcher. It is designed to be put at the bottom of a window and to be revealed only on really narrow windows, e.g. on mobile phones. It can't be revealed if there are less than two pages.

AdwViewSwitcherBar is intended to be used together with AdwViewSwitcher in a header bar, and a Breakpoint showing the view switcher bar on narrow sizes, while removing the view switcher from the header bar, as follows:

<object class="AdwWindow">
  <child>
    <object class="AdwBreakpoint">
      <condition>max-width: 550sp</condition>
      <setter object="switcher_bar" property="reveal">True</setter>
      <setter object="header_bar" property="title-widget"/>
    </object>
  </child>
  <property name="content">
    <object class="AdwToolbarView">
      <child type="top">
        <object class="AdwHeaderBar" id="header_bar">
          <property name="title-widget">
            <object class="AdwViewSwitcher">
              <property name="stack">stack</property>
              <property name="policy">wide</property>
            </object>
          </property>
        </object>
      </child>
      <property name="content">
        <object class="AdwViewStack" id="stack"/>
      </property>
      <child type="bottom">
        <object class="AdwViewSwitcherBar" id="switcher_bar">
          <property name="stack">stack</property>
        </object>
      </child>
    </object>
  </property>
</object>

It's recommended to set ViewSwitcher:policy to Adw.ViewSwitcherPolicy.wide in this case.

You may have to adjust the breakpoint condition for your specific pages.

CSS nodes

AdwViewSwitcherBar has a single CSS node with name viewswitcherbar.

See also: ViewSwitcher, InlineViewSwitcher, ViewSwitcherSidebar.

  • Constructor Details

    • ViewSwitcherBar

      public ViewSwitcherBar(MemorySegment address)
      Create a ViewSwitcherBar instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • ViewSwitcherBar

      public ViewSwitcherBar()
      Create a new ViewSwitcherBar.
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the ViewSwitcherBar class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • asParent

      protected ViewSwitcherBar asParent()
      Return this instance as if it were its parent type. Comparable to the Java super keyword, but ensures the parent typeclass is also used in native code.
      Overrides:
      asParent in class Widget
      Returns:
      the instance as if it were its parent type
    • getReveal

      public boolean getReveal()
      Gets whether this ViewSwitcherBar should be revealed or hidden.
      Returns:
      whether this ViewSwitcherBar is revealed
    • getStack

      public @Nullable ViewStack getStack()
      Gets the stack controlled by self.
      Returns:
      the stack
    • setReveal

      public void setReveal(boolean reveal)
      Sets whether this ViewSwitcherBar should be revealed or hidden.
      Parameters:
      reveal - whether to reveal this ViewSwitcherBar
    • setStack

      public void setStack(@Nullable ViewStack stack)
      Sets the stack controlled by self.
      Parameters:
      stack - a stack
    • builder

      public static ViewSwitcherBar.Builder<? extends ViewSwitcherBar.Builder> builder()
      A ViewSwitcherBar.Builder object constructs a ViewSwitcherBar with the specified properties. Use the various set...() methods to set properties, and finish construction with ViewSwitcherBar.Builder.build().
      Returns:
      the builder object