Flutter-Как отобразить положение пункта всплывающего меню на основе доступного места на экране слева - PullRequest
0 голосов
/ 29 мая 2020

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

При раскрытии пункта меню последнего пункта в представлении списка этот пункт меню закроет панель навигации. Есть ли способ создать его так, чтобы всплывающее меню располагалось вверху / под конечной кнопкой в ​​зависимости от доступного места на экране?

Пункт меню, покрывающий панель навигации

Widget build(BuildContext context) {
List<String> a = [
  '1',
  '2',
  '3',
  '4',
];

return Scaffold(
  appBar: AppBar(
    title: Text(widget.title),
  ),
  body: Center(
      child: ListView.builder(
    itemBuilder: (context, index) {
      return ListTile(
        trailing: PopupMenuButton(
          itemBuilder: (BuildContext context) {
            return a
                .map(
                  (e) => PopupMenuItem<String>(
                    value: e,
                    child: Text(
                      e,
                    ),
                  ),
                )
                .toList();
          },
          icon: Icon(Icons.more_vert),
        ),
        title: Text(index.toString()),
      );
    },
    itemCount: 50,
  )),
  bottomNavigationBar: BottomNavigationBar(items: [
    BottomNavigationBarItem(icon: Icon(Icons.mouse), title: Text('Option 1')),
    BottomNavigationBarItem(icon: Icon(Icons.mouse), title: Text('Option 2')),
  ]),
);
...