
SafeArea

Outro controle voltado para a diagramação das páginas de aplicativos, SafeArea insere conteúdo com preenchimento (padding, as distâncias entre as margens internas do container com as bordas externas do controle) de modo a impedir que os elementos de interface do sistema operacional se sobreponham às do aplicativo. Ele recua o conteúdo interno evitando sobreposição pela barra de status no alto da tela.
Em particular esse recurso permite o recuo do conteúdo para evitar obstrução pelo “entalhe” no iPhone, (notch) ou outras modificações na geometria das telas em aparelhos menores. Quando um preenchimento mínimo é especificado, o maior preenchimento mínimo ou o preenchimento da área segura será aplicado.
Propriedades de SafeArea
| Propriedade | Descrição |
|---|---|
| bottom | booleano, se o aplicativo deve evitar intrusão do sistema operacional na parte inferior da tela. Default é True. |
| content | recebe o controle filho a ser exibido dentro SafeArea. |
| left | booleano, se o aplicativo deve evitar intrusão do SO na parte esquerda da tela. Default é True. |
| maintain_bottom_view_padding | booleano, default é False. Se True o controle SafeArea deve manter em exibição o MediaQueryData.viewPadding no parte inferior da tela, em vez do MediaQueryData.padding (que é o default).
Por exemplo, caso um teclado na tela seja exibido acima da SafeArea, o preenchimento interno (padding) pode ser mantido abaixo da obstrução sem ser ocultado. Pode ser útil quando o layout contém controles flexíveis que podem ser movidos na interface do usuário. Definir |
| minimum | preenchimento (padding) mínimo a ser aplicado. |
| right | booleano, se o aplicativo deve evitar intrusão do SO na parte direita da tela. Default é True. |
| right | booleano, se o aplicativo deve evitar intrusão do SO na parte superior da tela, que em geral contém uma barra de status. Default é True. |
Um exemplo de uso do controle pode ser visto em Uso de SafeArea.
Placeholder
A palavra “placeholder” pode ser descrita em português como “marcador de posição” ou “espaço reservado”. O controle placeholder desenha uma caixa na página, representando o local onde outro widget será colocado, mais tarde. Ele é útil para marcar áreas do aplicativo durante o desenvolvimento, para efeito de visualização e organização do projeto.
Basicamente o Placeholder pode inserido na página sem muitas propriedades.

import flet as ft
def main(page: ft.Page):
page.add(ft.Placeholder(expand=True))
ft.app(main)
Propriedades de Placeholder
| Propriedade | Descrição |
|---|---|
| content | um controle que pode ser adicionado dentro do placeholder (opcional) |
| color | a cor do traço marcando o espaço reservado |
| fallback_height | altura da caixa a ser usada quando o placeholder não tem uma altura definida. O valor é um float com default de 400.0. |
| fallback_width | largura da caixa a ser usada quando o placeholder não tem uma largura definida. O valor é um float com default de 400.0. |
| stroke_width | largura da linha usada para desenhar a caixa do placeholder na página. O value é um float com default de 2.0. |
Exemplo de uso de Placeholder
import flet as ft
def main(page: ft.Page):
page.title = "Página com um Placeholder"
page.bgcolor=ft.Colors.BLUE_50
page.window.width=500
page.window.height=500
page.add(
ft.Container(
border=ft.border.all(1, ft.Colors.BLACK),
content=ft.Text("Um container com texto fora do placeholder", color=ft.Colors.BLACK),
margin=ft.margin.symmetric(horizontal=1, vertical=1),
alignment=ft.alignment.center,
height=100,
bgcolor=ft.Colors.GREEN_50,
),
ft.Placeholder(
expand=True,
stroke_width=4.0,
color=ft.Colors.DEEP_PURPLE_500,
content=ft.Container(
content=ft.Text("Um container com texto dentro do placeholder", color=ft.Colors.BLACK),
alignment=ft.alignment.center,
width=500,
height=100,
),
width=600,
)
)
ft.app(main)

