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

Класс ExpansionPanelRadio

Класс ExpansionPanelRadio используют в ExpansionPanelList.radio. Заголовок - headerBuilder, тело - body, значение - value для выбора одной панели.

Синтаксис

ExpansionPanelRadio<int>( value: 0, headerBuilder: (BuildContext context, bool isExpanded) { return ListTile(title: Text('abcde')); }, body: Text('12345'), )

Параметры

Параметр Описание
value Идентификатор панели в группе radio.
headerBuilder Заголовок панели.
body Содержимое при раскрытии.

Пример

Давайте соберём radio panel list:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: RadioPanelDemo())); } class RadioPanelDemo extends StatefulWidget { const RadioPanelDemo({super.key}); @override State<RadioPanelDemo> createState() => _RadioPanelDemoState(); } class _RadioPanelDemoState extends State<RadioPanelDemo> { int? val = 0; @override Widget build(BuildContext context) { return Scaffold( body: ExpansionPanelList.radio( initialOpenPanelValue: 0, expansionCallback: (v, open) { setState(() => val = open ? v as int : null); }, children: [ ExpansionPanelRadio( value: 0, headerBuilder: (c, e) => Text('abcde'), body: Text('12345'), ), ], ), ); } }

Открыта панель со value 0 и текстом '12345'.

Пример

Давайте добавим вторую radio-панель:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: ExpansionPanelList.radio( expansionCallback: (v, o) {}, children: [ ExpansionPanelRadio( value: 1, headerBuilder: (c, e) => Text('abcde'), body: Text('11111'), ), ExpansionPanelRadio( value: 2, headerBuilder: (c, e) => Text('12345'), body: Text('22222'), ), ], ), ), ), ); }

Две панели, открыта только одна в группе.

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

  • метод radio,
    список radio-панелей
  • класс ExpansionPanel,
    обычная панель без value
  • виджет ExpansionPanelList,
    базовый список
  • виджет Radio,
    переключатель одного значения
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить