跳到主要内容

导航 Rail

Material 小部件,旨在显示在应用程序的左侧或右侧,以在少数视图之间导航,通常在三个和五个之间。

示例

Live 示例

import flet as ft

def main(page: ft.Page):

rail = ft.NavigationRail(
selected_index=0,
label_type=ft.NavigationRailLabelType.ALL,
# extended=True,
min_width=100,
min_extended_width=400,
leading=ft.FloatingActionButton(icon=ft.icons.CREATE, text="Add"),
group_alignment=-0.9,
destinations=[
ft.NavigationRailDestination(
icon=ft.icons.FAVORITE_BORDER, selected_icon=ft.icons.FAVORITE, label="First"
),
ft.NavigationRailDestination(
icon=ft.Icon(ft.icons.BOOKMARK_BORDER),
selected_icon=ft.Icon(ft.icons.BOOKMARK),
label="Second",
),
ft.NavigationRailDestination(
icon=ft.icons.SETTINGS_OUTLINED,
selected_icon=ft.Icon(ft.icons.SETTINGS),
label_content=ft.Text("Settings"),
),
],
on_change=lambda e: print("Selected destination:", e.control.selected_index),
)

page.add(
ft.Row(
[
rail,
ft.VerticalDivider(width=1),
ft.Column([ ft.Text("Body!")], alignment=ft.MainAxisAlignment.START, expand=True),
],
expand=True,
)
)

ft.app(main)

icon

目的地的图标名称(图标名称参考)或Control。 使用图标名称的示例:

icon=ft.icons.BOOKMARK

使用Control的示例:

icon=ft.Icon(ft.icons.BOOKMARK)

如果提供了selected_icon,则仅在目的地未被选中时显示此图标。

为了使NavigationRail更易于访问,可以考虑选择具有描边和填充版本的图标,例如ft.icons.CLOUDft.icons.CLOUD_QUEUE。应将图标设置为描边版本,将selected_icon设置为填充版本。

icon_content

目的地的图标Control。通常,图标是一个Icon控件。用于替代icon属性。

在 v0.25.0 中已弃用,并将在 v0.28.0 中删除。请使用icon代替。

indicator_color

当此目的地被选中时,indicator_shape的颜色。

indicator_shape

选择指示器的形状。值是OutlinedBorder类的实例。

label

表示目的地标签的字符串。仅在未提供label_content时显示。

label_content

目的地的标签Control。如果提供了此内容,则将忽略label

NavigationRail一起使用时必须提供标签。当NavigationRail.label_type=NavigationRailLabelType.NONE时,标签仍用于语义,并且如果NavigationRail.extended=True,仍可能会被使用。

padding

插入目的地项的空间量。

PaddingPadding类的实例。

selected_icon

当此目的地被选中时显示的替代图标名称或Control

使用图标名称的示例:

selected_icon=ft.icons.BOOKMARK

使用Control的示例:

selected_icon=ft.Icon(ft.icons.BOOKMARK)

如果未提供此图标,则NavigationRail在任何状态下都将显示icon

selected_icon_content

当此目的地被选中时显示的替代图标Control

在 v0.25.0 中已弃用,并将在 v0.28.0 中删除。请使用selected_icon代替。