跳到主要内容

安全区域 SafeArea

SafeArea是一个控件,通过插入足够的内边距来避开操作系统的干扰。

例如,这个控件会将内容的缩进调整得足够来避开顶部的状态栏。

它还会相应地调整内容的缩进,以避开iPhone X上的刘海屏等创意显示屏的干扰。

当指定了最小内边距时,会应用最小内边距和安全边界内边距中较大的那个值。

示例

import flet as ft

class State:
counter = 0

def main(page: ft.Page):
state = State()

def add_click(e):
state.counter += 1
counter.value = str(state.counter)
counter.update()

page.floating_action_button = ft.FloatingActionButton(
icon=ft.icons.ADD, on_click=add_click
)
page.add(
ft.SafeArea(
ft.Container(
counter := ft.Text("0", size=50),
alignment=ft.alignment.center,
),
expand=True,
)
)

ft.app(main)

属性

bottom

是否避免屏幕底部的系统干扰。默认为True

content

显示在安全区域内的控件。

left

是否避免左侧的系统干扰。默认为True

maintain_bottom_view_padding

指定SafeArea是否应该保持底部的MediaQueryData.viewPadding而不是底部的MediaQueryData.padding,默认为False

例如,如果有一个屏幕键盘显示在SafeArea上方,那么内边距可以在障碍物下方维持,而不是被键盘消耗掉。这在布局包含灵活控件的情况下很有帮助,因为在打开软键盘时,内边距的变化可能会导致控件可见地移动。将此值设为true将避免UI的变化。

minimum

要应用的最小内边距。

将应用最小内边距和媒体内边距中较大的那个值。

是否避免右侧的系统干扰。默认为True

top

是否避免屏幕顶部的系统干扰,通常指状态栏。默认为True