BasePage
Inherits: AdaptiveControl
A visual container representing a top-level view in a Flet application.
BasePage serves as the base class for Page and MultiView,
and provides a unified surface for rendering application content, app bars,
navigation elements, dialogs, overlays, and more. It manages one or more
View instances and exposes high-level layout,
scrolling, and theming properties.
Unlike lower-level layout controls (e.g., Column,
Container), BasePage represents
an entire logical view or screen of the app. It provides direct access
to view-level controls such as AppBar, NavigationBar,
FloatingActionButton, and supports system-level events like window
resizing and media changes.
This class is not intended to be used directly in most apps; instead,
use Page or MultiView, which extend this base
functionality.
Properties
-
appbar(AppBar | CupertinoAppBar | None) –Gets or sets the top application bar (AppBar or CupertinoAppBar) for the view.
-
auto_scroll(bool) –Whether root view should auto-scroll to the end on content changes.
-
bgcolor(ColorValue | None) –Background color of the root view.
-
bottom_appbar(BottomAppBar | None) –Bottom app bar displayed in the root view.
-
controls(list[BaseControl]) –Root view content controls displayed by this page.
-
dark_theme(Theme | None) –Customizes the theme of the application when in dark theme mode.
-
decoration(BoxDecoration | None) –Background decoration of the root view container.
-
drawer(NavigationDrawer | None) –Navigation drawer opened from the leading edge.
-
enable_screenshots(bool) –Enable taking screenshots of the entire page with
take_screenshotmethod. -
end_drawer(NavigationDrawer | None) –Navigation drawer opened from the trailing edge.
-
floating_action_button(FloatingActionButton | None) –Floating action button shown for the root view.
-
floating_action_button_location(FloatingActionButtonLocation | OffsetValue | None) –Placement of the floating action button in the root view.
-
foreground_decoration(BoxDecoration | None) –Foreground decoration painted above root view content.
-
height(Number | None) –Page height in logical pixels.
-
horizontal_alignment(CrossAxisAlignment) –Horizontal alignment of root view child controls.
-
locale_configuration(LocaleConfiguration | None) –Configures supported locales and the current locale.
-
media(PageMediaData) –The current environmental metrics of the page or window.
-
navigation_bar(NavigationBar | CupertinoNavigationBar | None) –Bottom navigation bar for the root view.
-
overlay(list[BaseControl]) –The list of overlay controls rendered above page content.
-
padding(PaddingValue | None) –Inner padding for the root view content.
-
scroll(ScrollMode | None) –Scroll behavior mode for root view content.
-
services(list[Service]) –Service instances attached to the root view lifecycle.
-
show_semantics_debugger(bool | None) –Whether to turn on an overlay that shows the accessibility information reported by the framework.
-
spacing(Number) –Default spacing between root view child controls.
-
theme(Theme | None) –Customizes the theme of the application when in light theme mode. Currently, a theme can only be automatically generated from a "seed" color. For example, to generate light theme from a green color.
-
theme_mode(ThemeMode | None) –The page's theme mode.
-
title(str | None) –Page or window title.
-
vertical_alignment(MainAxisAlignment) –Vertical alignment of root view child controls.
-
views(list[View]) –A list of views managed by the page.
-
width(Number | None) –Page width in logical pixels.
Events
-
on_media_change(EventHandler[PageMediaData] | None) –Called when
mediahas changed. -
on_resize(EventHandler[PageResizeEvent] | None) –Called when a user resizes a browser or native OS window containing Flet app
Methods
-
add–Adds controls to the page.
-
clean–Remove all root view controls and send update to the client.
-
close_drawer–Close the drawer.
-
close_end_drawer–Close the end drawer.
-
insert–Inserts controls at specific index of
page.controlslist. -
pop_dialog–Closes the most recently opened dialog.
-
remove–Removes specific controls from
page.controlslist. -
remove_at–Remove controls from
page.controlslist at specific index. -
scroll_to–Moves scroll position to either absolute
offset, relativedeltaor jump to the control with specifiedscroll_key. -
show_dialog–Displays a dialog and manages its dismissal lifecycle.
-
show_drawer–Show the drawer.
-
show_end_drawer–Show the end drawer.
-
take_screenshot–Captures a screenshot of the entire page with overlays.
-
update–Push pending updates to the connected client.
Properties#
appbar
property
writable
#
appbar: AppBar | CupertinoAppBar | None
Gets or sets the top application bar (AppBar or CupertinoAppBar) for the view.
The app bar typically displays the page title and optional actions such as navigation icons, menus, or other interactive elements.
auto_scroll
property
writable
#
auto_scroll: bool
Whether root view should auto-scroll to the end on content changes.
bottom_appbar
property
writable
#
bottom_appbar: BottomAppBar | None
Bottom app bar displayed in the root view.
controls
property
writable
#
controls: list[BaseControl]
Root view content controls displayed by this page.
dark_theme
class-attribute
instance-attribute
#
dark_theme: Theme | None = None
Customizes the theme of the application when in dark theme mode.
decoration
property
writable
#
decoration: BoxDecoration | None
Background decoration of the root view container.
drawer
property
writable
#
drawer: NavigationDrawer | None
Navigation drawer opened from the leading edge.
enable_screenshots
class-attribute
instance-attribute
#
enable_screenshots: bool = False
Enable taking screenshots of the entire page with take_screenshot method.
end_drawer
property
writable
#
end_drawer: NavigationDrawer | None
Navigation drawer opened from the trailing edge.
floating_action_button
property
writable
#
floating_action_button: FloatingActionButton | None
Floating action button shown for the root view.
floating_action_button_location
property
writable
#
floating_action_button_location: (
FloatingActionButtonLocation | OffsetValue | None
)
Placement of the floating action button in the root view.
foreground_decoration
property
writable
#
foreground_decoration: BoxDecoration | None
Foreground decoration painted above root view content.
height
class-attribute
instance-attribute
#
height: Number | None = None
Page height in logical pixels.
Note
- This property is read-only.
- To get or set the full window height including window chrome (e.g.,
title bar and borders) when running a Flet app on desktop,
use the
heightproperty ofPage.windowinstead.
horizontal_alignment
property
writable
#
horizontal_alignment: CrossAxisAlignment
Horizontal alignment of root view child controls.
locale_configuration
class-attribute
instance-attribute
#
locale_configuration: LocaleConfiguration | None = None
Configures supported locales and the current locale.
media
class-attribute
instance-attribute
#
media: PageMediaData = field(
default_factory=lambda: PageMediaData(
padding=zero(),
view_padding=zero(),
view_insets=zero(),
device_pixel_ratio=0,
orientation=PORTRAIT,
always_use_24_hour_format=False,
)
)
The current environmental metrics of the page or window.
This data is updated whenever the platform window or layout changes, such as when rotating a device, resizing a browser window, or adjusting system UI elements like the keyboard or safe areas.
navigation_bar
property
writable
#
navigation_bar: (
NavigationBar | CupertinoNavigationBar | None
)
Bottom navigation bar for the root view.
overlay
property
#
overlay: list[BaseControl]
The list of overlay controls rendered above page content.
services
property
writable
#
Service instances attached to the root view lifecycle.
show_semantics_debugger
class-attribute
instance-attribute
#
show_semantics_debugger: bool | None = None
Whether to turn on an overlay that shows the accessibility information reported by the framework.
theme
class-attribute
instance-attribute
#
theme: Theme | None = None
Customizes the theme of the application when in light theme mode. Currently, a theme can only be automatically generated from a "seed" color. For example, to generate light theme from a green color.
theme_mode
class-attribute
instance-attribute
#
The page's theme mode.
vertical_alignment
property
writable
#
vertical_alignment: MainAxisAlignment
Vertical alignment of root view child controls.
views
class-attribute
instance-attribute
#
A list of views managed by the page.
Each View represents a distinct navigation state or screen
in the application.
The first view in the list is considered the active one by default.
width
class-attribute
instance-attribute
#
width: Number | None = None
Page width in logical pixels.
Note
- This property is read-only.
- To get or set the full window height including window chrome (e.g.,
title bar and borders) when running a Flet app on desktop,
use the
widthproperty ofPage.windowinstead.
Events#
on_media_change
class-attribute
instance-attribute
#
on_media_change: EventHandler[PageMediaData] | None = None
Called when media has changed.
on_resize
class-attribute
instance-attribute
#
on_resize: EventHandler[PageResizeEvent] | None = None
Methods#
insert
#
Inserts controls at specific index of page.controls list.
pop_dialog
#
pop_dialog() -> DialogControl | None
Closes the most recently opened dialog.
This method searches the active dialog stack for the topmost dialog that is currently open, marks it as closed, updates its state, and returns the closed dialog.
Returns:
-
DialogControl | None–The closed dialog instance if one was found, otherwise
None.
remove_at
#
remove_at(index: int) -> None
Remove controls from page.controls list at specific index.
scroll_to
async
#
scroll_to(
offset: Number | None = None,
delta: Number | None = None,
scroll_key: ScrollKey
| str
| int
| float
| bool
| None = None,
duration: DurationValue | None = None,
curve: AnimationCurve | None = None,
) -> None
Moves scroll position to either absolute offset, relative delta or jump to the control with specified scroll_key.
See Column.scroll_to() for method details
and examples.
show_dialog
#
show_dialog(dialog: DialogControl) -> None
Displays a dialog and manages its dismissal lifecycle.
This method adds the specified dialog to the active dialog stack
and renders it on the page.
The on_dismiss handler of the dialog
is temporarily wrapped to ensure the dialog is removed from the stack and
its dismissal event is triggered appropriately.
Parameters:
-
dialog(DialogControl) –The dialog instance to display. Must not yet be open.
Raises:
-
RuntimeError–If the specified dialog is already open.
show_end_drawer
async
#
take_screenshot
async
#
take_screenshot(
pixel_ratio: Number | None = None,
delay: DurationValue | None = None,
) -> bytes
Captures a screenshot of the entire page with overlays.
Parameters:
-
pixel_ratio(Number | None, default:None) –A pixel ratio of the captured screenshot. If
None, device-specific pixel ratio will be used. -
delay(DurationValue | None, default:None) –A delay before taking a screenshot. The delay will be 20 milliseconds if not specified.
Returns:
-
bytes–Screenshot in PNG format.