Высота 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