Я пытаюсь создать верхнюю панель, используя showMenu
. Я попытался стилизовать первый PopupMenuItem
в showMenu
, чтобы он выглядел так. Я попытался изменить цвет этого единственного элемента, но обнаружил, что вокруг верхней панели есть какие-то поля, оставляя белую область.
Итак, я попробовал EdgeInsets.zero
, и все отступы исчезли, кроме отступа на верхней стороне. Я не смог узнать (или найти ответ в Google/
Это часть моего текущего кода и того, как он выглядит, когда я его запускаю.
showMenu(
context: context,
position: position,
items: [
PopupMenuItem(
padding: EdgeInsets.zero, // remove paddings
child: Container(
decoration: BoxDecoration(
color: Colors.blueGrey, // Topbar color
borderRadius:
BorderRadius.vertical(top: Radius.circular(8)), // Topbar edge
),
child: Padding(
padding: const EdgeInsets.all(12), // Inner paddings for design
child: Row(
children: [
Expanded(
flex: 4,
child: Text(
weekdayDate + ' Schedule',
style: TextStyle(color: Colors.white),
),
),
Expanded(
flex: 1,
child: IconButton(
icon: Icon(Icons.add_outlined, color: Colors.white),
onPressed: () {
//
},
),
),
],
),
),
),
),
(Они не позволяют мне публиковать прямые изображения, потому что у меня нет репутации «10».) Красная рамка — это отступ, от которого я не могу избавиться.
Я понимаю, что мне, возможно, придется создать собственный виджет, но я никогда не делал этого раньше, поэтому мне не очень удобно это делать.
Английский — мой второй язык, и я впервые пишу на StackOverflow. Извините, если мой пост выходит за рамки правил.
Большое спасибо. menuPadding
не появилось, когда я прочитал описание showMenu, поэтому я не знал, что оно существует. Это произошло потому, что я использовал старую версию флаттера. Обновил, поставил на ноль и все проблемы устранились. Хорошего дня!
Вам необходимо удалить отступы из showMenu(), используя свойство MenuPadding вместо дочернего виджета!
showMenu(
context: context,
position: position,
menuPadding: EdgeInsets.zero // <--- this
// ... other properties
)
вам нужно удалить отступы для
showMenu(menuPadding: )
, а не для дочернего виджета.