Как показать Flutter AppBar без конечного пробела
Когда я добавляю AppBar в свою программу, она показывает пустое пространство под AppBar, которое по сути является пустой строкой. Когда я удаляю панель приложений, строка пробела отсутствует. Космический ряд очень заметен и портит внешний вид приложения. Есть ли способ получить AppBar без пробела и без использования собственного виджета для его достижения?
Код:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Calculator',
home: Scaffold(
appBar: AppBar(title: Text("Flutter Calculator")),
body: (HomeScreen())));
}
}
1 ответ
Эта проблема, по-видимому, была вызвана добавлением SafeArea без значения "top:", установленного в false. Надеюсь, это решение. Не уверен, почему по умолчанию SafeArea добавляет заполнение. Я бы подумал, что лучше добавить свойство отступа, но что бы я знал, я только изучаю Flutter?
Соответствующий код приведен ниже, и теперь проблема, похоже, исправлена. Ранее я показал минимальный AppBar, чтобы уменьшить количество кода, чтобы проиллюстрировать проблему. Полный AppBar теперь отображается. Кажется, это сложный способ просто установить высоту AppBar, но что я буду знать? Однако, как новичку в Flutter, мне потребовалось несколько часов, чтобы найти то, что, я надеюсь, является решением. Однако главное в параграфе 1 выше.
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: PreferredSize(
preferredSize: Size.fromHeight(35.0),
child: AppBar(
automaticallyImplyLeading: false, // hides leading widget
centerTitle: true,
title: Text("Flutter Calculator by Brian"))),
body: (HomeScreen())));
}
}
class HomeScreen extends StatefulWidget {
@override
HomeScreenState createState() => new HomeScreenState();
}
class HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SafeArea(
top: false,
bottom: false,
child: Material(