ViewSwitcherBar

class ViewSwitcherBar(**properties: Any)

Superclasses: Widget, InitiallyUnowned, Object

Implemented Interfaces: Accessible, Buildable, ConstraintTarget

A view switcher action bar.

https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/view-switcher-bar.png

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">
  <property name="width-request">360</property>
  <property name="height-request">200</property>
  <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 policy to ADW_VIEW_SWITCHER_POLICY_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`.

Constructors

class ViewSwitcherBar
classmethod new() Widget

Creates a new AdwViewSwitcherBar.

Methods

class ViewSwitcherBar
get_reveal() bool

Gets whether self should be revealed or hidden.

get_stack() ViewStack | None

Gets the stack controlled by self.

set_reveal(reveal: bool) None

Sets whether self should be revealed or hidden.

Parameters:

reveal – whether to reveal self

set_stack(stack: ViewStack | None = None) None

Sets the stack controlled by self.

Parameters:

stack – a stack

Properties

class ViewSwitcherBar
props.reveal: bool

Whether the bar should be revealed or hidden.

props.stack: ViewStack

The stack the view switcher controls.