Adw.BottomSheet
Description: Reference for Adw.BottomSheet

### Class

# AdwBottomSheet

since: 1.6

#### Description [src]

    final class Adw.BottomSheet : Gtk.Widget
      implements Adw.Swipeable, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
      /* No available fields */
    }

A bottom sheet with an optional bottom bar.

`AdwBottomSheet` has three child widgets. `AdwBottomSheet:content` is shown persistently. `AdwBottomSheet:sheet` is displayed above it when it’s open, and `AdwBottomSheet:bottom-bar` is displayed when it’s not.

Bottom sheet and bottom bar are attached to the bottom edge of the widget. They take the full width by default, but can only take a portion of it if `AdwBottomSheet:full-width` is set to `FALSE`. In this case, `AdwBottomSheet:align` determines where along the bottom edge they are placed.

`AdwBottomSheet` can be useful for applications such as music players, that want to have a persistent bottom bar that expands into a bottom sheet when clicked. It’s meant for cases where a bottom sheet is tightly integrated into the UI. For more transient bottom sheets, see `AdwDialog`.

To open or close the bottom sheet, use the `AdwBottomSheet:open` property.

By default, the bottom sheet has an overlaid drag handle. It can be disabled by setting `AdwBottomSheet:show-drag-handle` to `FALSE`. Note that the handle also controls whether the sheet can be dragged using a pointer.

Bottom sheets are modal by default, meaning that the content is dimmed and cannot be accessed while the sheet is open. Set `AdwBottomSheet:modal` to `FALSE` if this behavior is unwanted.

To disable user interactions for opening or closing the bottom sheet (such as swipes or clicking the bottom bar or close button), set `AdwBottomSheet:can-open` or `AdwBottomSheet:can-close` to `FALSE`.

In some cases, particularly when using a full-width bottom bar, it may be necessary to shift `AdwBottomSheet:content` upwards. Use the `AdwBottomSheet:bottom-bar-height` and `AdwBottomSheet:sheet-height` for that.

`AdwBottomSheet` is not adaptive, and for larger window sizes applications may want to replace it with another UI, such as a sidebar. This can be done using `AdwMultiLayoutView`.

## Sizing

Unlike `AdwDialog` presented as a bottom sheet, `AdwBottomSheet` just follows the content’s natural size, and it’s up to the applications to make sure their content provides one. For example, when using `GtkScrolledWindow`, make sure to set `GtkScrolledWindow:propagate-natural-height` to `TRUE`.

## Header Bar Integration

When placed inside an `AdwBottomSheet`, `AdwHeaderBar` will not show the title when `AdwBottomSheet:show-drag-handle` is `TRUE`, regardless of `AdwHeaderBar:show-title`. This only applies to the default title, titles set with `AdwHeaderBar:title-widget` will still be shown.

## `AdwBottomSheet` as `GtkBuildable`:

The `AdwBottomSheet` implementation of the `GtkBuildable` interface supports setting the sheet widget by specifying “sheet” as the “type” attribute of a `<child>` element, and the bottom bar by specifying “bottom-bar”. Specifying “content” or omitting the child type results in setting the content child.

Available since: 1.6

#### Hierarchy

#### Ancestors

- GtkWidget
- GInitiallyUnowned
- GObject

#### Implements

- AdwSwipeable
- GtkAccessible
- GtkBuildable
- GtkConstraintTarget

#### Constructors

###### adw_bottom_sheet_new

Creates a new `AdwBottomSheet`.

since: 1.6

#### Instance methods

###### adw_bottom_sheet_get_align

Gets horizontal alignment of the bottom sheet.

since: 1.6

###### adw_bottom_sheet_get_bottom_bar

Gets the bottom bar widget for `self`.

since: 1.6

###### adw_bottom_sheet_get_bottom_bar_height

Gets the current bottom bar height.

since: 1.6

###### adw_bottom_sheet_get_can_close

Gets whether the bottom sheet can be closed by user.

since: 1.6

###### adw_bottom_sheet_get_can_open

Gets whether the bottom sheet can be opened by user.

since: 1.6

###### adw_bottom_sheet_get_content

Gets the content widget for `self`.

since: 1.6

###### adw_bottom_sheet_get_full_width

Gets whether the bottom sheet takes the full width.

since: 1.6

###### adw_bottom_sheet_get_modal

Gets whether the bottom sheet is modal.

since: 1.6

###### adw_bottom_sheet_get_open

Gets whether the bottom sheet is open.

since: 1.6

###### adw_bottom_sheet_get_sheet

Gets the bottom sheet widget for `self`.

since: 1.6

###### adw_bottom_sheet_get_sheet_height

Gets the current bottom sheet height.

since: 1.6

###### adw_bottom_sheet_get_show_drag_handle

Gets whether to show a drag handle in the bottom sheet.

since: 1.6

###### adw_bottom_sheet_set_align

Sets horizontal alignment of the bottom sheet.

since: 1.6

###### adw_bottom_sheet_set_bottom_bar

Sets the bottom bar widget for `self`.

since: 1.6

###### adw_bottom_sheet_set_can_close

Sets whether the bottom sheet can be closed by user.

since: 1.6

###### adw_bottom_sheet_set_can_open

Sets whether the bottom sheet can be opened by user.

since: 1.6

###### adw_bottom_sheet_set_content

Sets the content widget for `self`.

since: 1.6

###### adw_bottom_sheet_set_full_width

Sets whether the bottom sheet takes the full width.

since: 1.6

###### adw_bottom_sheet_set_modal

Sets whether the bottom sheet is modal.

since: 1.6

###### adw_bottom_sheet_set_open

Sets whether the bottom sheet is open.

since: 1.6

###### adw_bottom_sheet_set_sheet

Sets the bottom sheet widget for `self`.

since: 1.6

###### adw_bottom_sheet_set_show_drag_handle

Sets whether to show a drag handle in the bottom sheet.

since: 1.6

##### Methods inherited from GtkWidget (162)

Please see GtkWidget for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from AdwSwipeable (5)

###### adw_swipeable_get_cancel_progress

Gets the progress `self` will snap back to after the gesture is canceled.

###### adw_swipeable_get_distance

Gets the swipe distance of `self`.

###### adw_swipeable_get_progress

Gets the current progress of `self`.

###### adw_swipeable_get_snap_points

Gets the snap points of `self`.

###### adw_swipeable_get_swipe_area

Gets the area `self` can start a swipe from for the given direction and gesture type.

##### Methods inherited from GtkAccessible (19)

###### gtk_accessible_announce

Requests the user’s screen reader to announce the given message.

###### gtk_accessible_get_accessible_parent

Retrieves the accessible parent for an accessible object.

###### gtk_accessible_get_accessible_role

Retrieves the accessible role of an accessible object.

###### gtk_accessible_get_at_context

Retrieves the accessible implementation for the given `GtkAccessible`.

###### gtk_accessible_get_bounds

Queries the coordinates and dimensions of this accessible.

###### gtk_accessible_get_first_accessible_child

Retrieves the first accessible child of an accessible object.

###### gtk_accessible_get_next_accessible_sibling

Retrieves the next accessible sibling of an accessible object.

###### gtk_accessible_get_platform_state

Query a platform state, such as focus.

###### gtk_accessible_reset_property

Resets the accessible `property` to its default value.

###### gtk_accessible_reset_relation

Resets the accessible `relation` to its default value.

###### gtk_accessible_reset_state

Resets the accessible `state` to its default value.

###### gtk_accessible_set_accessible_parent

Sets the parent and sibling of an accessible object.

###### gtk_accessible_update_next_accessible_sibling

Updates the next accessible sibling of `self`.

###### gtk_accessible_update_property

Updates a list of accessible properties.

###### gtk_accessible_update_property_value

Updates an array of accessible properties.

###### gtk_accessible_update_relation

Updates a list of accessible relations.

###### gtk_accessible_update_relation_value

Updates an array of accessible relations.

###### gtk_accessible_update_state

Updates a list of accessible states. See the `GtkAccessibleState` documentation for the value types of accessible states.

###### gtk_accessible_update_state_value

Updates an array of accessible states.

##### Methods inherited from GtkBuildable (1)

###### gtk_buildable_get_buildable_id

Gets the ID of the `buildable` object.

#### Properties

###### Adw.BottomSheet:align

Horizontal alignment of the bottom sheet.

since: 1.6

###### Adw.BottomSheet:bottom-bar

The bottom bar widget.

since: 1.6

###### Adw.BottomSheet:bottom-bar-height

The current bottom bar height.

since: 1.6

###### Adw.BottomSheet:can-close

Whether the bottom sheet can be closed by user.

since: 1.6

###### Adw.BottomSheet:can-open

Whether the bottom sheet can be opened by user.

since: 1.6

###### Adw.BottomSheet:content

The content widget.

since: 1.6

###### Adw.BottomSheet:full-width

Whether the bottom sheet takes the full width.

since: 1.6

###### Adw.BottomSheet:modal

Whether the bottom sheet is modal.

since: 1.6

###### Adw.BottomSheet:open

Whether the bottom sheet is open.

since: 1.6

###### Adw.BottomSheet:sheet

The bottom sheet widget.

since: 1.6

###### Adw.BottomSheet:sheet-height

The current bottom sheet height.

since: 1.6

###### Adw.BottomSheet:show-drag-handle

Whether to overlay a drag handle in the bottom sheet.

since: 1.6

##### Properties inherited from GtkWidget (34)

###### Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

###### Gtk.Widget:can-target

Whether the widget can receive pointer events.

###### Gtk.Widget:css-classes

A list of css classes applied to this widget.

###### Gtk.Widget:css-name

The name of this widget in the CSS tree.

###### Gtk.Widget:cursor

The cursor used by `widget`.

###### Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

###### Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

###### Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

###### Gtk.Widget:has-default

Whether the widget is the default widget.

###### Gtk.Widget:has-focus

Whether the widget has the input focus.

###### Gtk.Widget:has-tooltip

Enables or disables the emission of the ::query-tooltip signal on `widget`.

###### Gtk.Widget:height-request

Override for height request of the widget.

###### Gtk.Widget:hexpand

Whether to expand horizontally.

###### Gtk.Widget:hexpand-set

Whether to use the `hexpand` property.

###### Gtk.Widget:layout-manager

The `GtkLayoutManager` instance to use to compute the preferred size of the widget, and allocate its children.

###### Gtk.Widget:margin-bottom

Margin on bottom side of widget.

###### Gtk.Widget:margin-end

Margin on end of widget, horizontally.

###### Gtk.Widget:margin-start

Margin on start of widget, horizontally.

###### Gtk.Widget:margin-top

Margin on top side of widget.

###### Gtk.Widget:name

The name of the widget.

###### Gtk.Widget:opacity

The requested opacity of the widget.

###### Gtk.Widget:overflow

How content outside the widget’s content area is treated.

###### Gtk.Widget:parent

The parent widget of this widget.

###### Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

###### Gtk.Widget:root

The `GtkRoot` widget of the widget tree containing this widget.

###### Gtk.Widget:scale-factor

The scale factor of the widget.

###### Gtk.Widget:sensitive

Whether the widget responds to input.

###### Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

###### Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

###### Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

###### Gtk.Widget:vexpand

Whether to expand vertically.

###### Gtk.Widget:vexpand-set

Whether to use the `vexpand` property.

###### Gtk.Widget:visible

Whether the widget is visible.

###### Gtk.Widget:width-request

Override for width request of the widget.

##### Properties inherited from GtkAccessible (1)

###### Gtk.Accessible:accessible-role

The accessible role of the given `GtkAccessible` implementation.

#### Signals

###### Adw.BottomSheet::close-attempt

Emitted when the close button or shortcut is used while `AdwDialog:can-close` is set to `FALSE`.

since: 1.6

##### Signals inherited from GtkWidget (13)

###### GtkWidget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold.

###### GtkWidget::direction-changed

Emitted when the text direction of a widget changes.

###### GtkWidget::hide

Emitted when `widget` is hidden.

###### GtkWidget::keynav-failed

Emitted if keyboard navigation fails.

###### GtkWidget::map

Emitted when `widget` is going to be mapped.

###### GtkWidget::mnemonic-activate

Emitted when a widget is activated via a mnemonic.

###### GtkWidget::move-focus

Emitted when the focus is moved.

###### GtkWidget::query-tooltip

Emitted when the widget’s tooltip is about to be shown.

###### GtkWidget::realize

Emitted when `widget` is associated with a `GdkSurface`.

###### GtkWidget::show

Emitted when `widget` is shown.

###### GtkWidget::state-flags-changed

Emitted when the widget state changes.

###### GtkWidget::unmap

Emitted when `widget` is going to be unmapped.

###### GtkWidget::unrealize

Emitted when the `GdkSurface` associated with `widget` is destroyed.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct AdwBottomSheetClass {
      GtkWidgetClass parent_class;

    }

No description available.

###### Class members

`parent_class: GtkWidgetClass`

  No description available.