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

Класс PreferredSize

Класс PreferredSize оборачивает виджет с фиксированной высотой для AppBar. Высоту передают в preferredSize, содержимое - в child. TabBar уже реализует PreferredSizeWidget, PreferredSize используют для кастомной bottom полосы.

Синтаксис

PreferredSize( preferredSize: Size.fromHeight(48), child: TabBar(tabs: [Tab(text: 'abcde')]), )

Параметры

Параметр Описание
preferredSize Размер, который запрашивает виджет у AppBar.
child Содержимое полосы.

Пример

Давайте поставим TabBar в bottom AppBar:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: DefaultTabController( length: 2, child: Scaffold( appBar: AppBar( bottom: TabBar( tabs: [ Tab(text: 'abcde'), Tab(text: '12345'), ], ), ), body: TabBarView( children: [ Center(child: Text('11111')), Center(child: Text('22222')), ], ), ), ), ), ); }

AppBar расширяется под высоту TabBar.

Пример

Давайте зададим кастомную высоту bottom:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( appBar: AppBar( title: Text('abcde'), bottom: PreferredSize( preferredSize: Size.fromHeight(56), child: Container( color: Colors.grey.shade200, child: Center(child: Text('12345')), ), ), ), body: Center(child: Text('11111')), ), ), ); }

Под заголовком серая полоса высотой 56 с текстом '12345'.

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

  • виджет AppBar,
    куда передают bottom
  • виджет TabBar,
    который сам задаёт preferredSize
  • виджет SizedBox,
    которым фиксируют высоту child
  • виджет SliverAppBar,
    где тоже важна высота шапки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить