Высота AppBar в Flutter

Как я могу получить высоту AppBar в Flutter?
Я использую виджет MarialApp ( "package: flutter/material.dart" ).

У меня высота моего Контекста и хотелось бы вычесть высоту панели приложений.

final double height = MediaQuery.of(context).size.height;

Ответ 1

Я думаю, это не идеальный способ, но он будет работать.

Сначала объявите виджет AppBar, который вы будете использовать в Scaffold.

Widget demoPage() {
  AppBar appBar = AppBar(
    title: Text('Demo'),
  );
  return Scaffold(
    appBar: appBar,
    body: /*
    page body
    */,
  );
}

Теперь вы можете получить высоту вашего appBar, используя preferredSized:

double height = appBar.preferredSize.height;

Вы можете использовать эту высоту, чтобы уменьшить высоту экрана.

final double height = MediaQuery.of(context).size.height;

Ответ 2

Вы можете получить высоту AppBar с помощью:

double height = appBar.preferredSize.height;

Убедитесь, что вы объявили виджет AppBar.

Ответ 3

Существует постоянная для нормальной высоты панели инструментов: kToolbarHeight

Ответ 4

Вы можете использовать это:

var height = AppBar().preferredSize.Height;

этот способ очень простой и простой

Ответ 5

Используйте предпочтительный размер

//defined as
Size preferredSize

предпочтительный размер - это размер, высота которого является суммой kToolbarHeight и предпочтительной высоты нижнего виджета.

Scaffold использует этот размер для установки высоты панели приложения.

Это определено как ниже в классе панели приложения, который реализует PreferredSizeWidget

 preferredSize = new Size.fromHeight(kToolbarHeight + (bottom?.preferredSize?.height ?? 0.0))

ссылка, например...

https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/material/app_bar.dart