Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
482 of 1024 menu
◀ ▶

Виджет NavigationRail

Виджет NavigationRail ставят в Row рядом с контентом. Пункты - NavigationRailDestination в destinations, индекс - selectedIndex, переключение - onDestinationSelected, подписи - labelType из NavigationRailLabelType.

Синтаксис

NavigationRail( selectedIndex: 0, onDestinationSelected: (int index) {}, destinations: [ NavigationRailDestination( icon: Icon(Icons.home), label: Text('abcde'), ), ], )

Параметры

Параметр Описание
destinations Список пунктов rail.
selectedIndex Активный пункт.
extended Широкая панель с текстом рядом с иконками.

Пример

Давайте разделим экран rail и body:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: RailDemo())); } class RailDemo extends StatefulWidget { const RailDemo({super.key}); @override State<RailDemo> createState() => _RailDemoState(); } class _RailDemoState extends State<RailDemo> { int idx = 0; @override Widget build(BuildContext context) { return Scaffold( body: Row( children: [ NavigationRail( selectedIndex: idx, onDestinationSelected: (i) => setState(() => idx = i), destinations: [ NavigationRailDestination(icon: Icon(Icons.home), label: Text('abcde')), NavigationRailDestination(icon: Icon(Icons.settings), label: Text('12345')), ], ), Expanded(child: Center(child: Text(idx == 0 ? 'abcde' : '12345'))), ], ), ); } }

Слева иконки, справа текст меняется при выборе.

Пример

Давайте включим extended:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: NavigationRail( extended: true, selectedIndex: 0, onDestinationSelected: (i) {}, destinations: [ NavigationRailDestination(icon: Icon(Icons.star), label: Text('abcde')), ], ), ), ), ); }

Подпись 'abcde' видна рядом с иконкой.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить