Показать Alert_Dialog внизу экрана - PullRequest
0 голосов
/ 03 апреля 2019

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

  Widget _buildAboutDialog(BuildContext context)  {
    return new AlertDialog(
    backgroundColor: Colors.black,

  content: Container(
    width: MediaQuery.of(context).size.width * 0.9,
    height: MediaQuery.of(context).size.height * 0.25,
    child: Column(
      mainAxisSize: MainAxisSize.min,
      mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
    Expanded(
    child: new GridView.count(
      crossAxisCount: 4,
        children: new List<Widget>.generate(8, (index) {
              return new GridTile(
                  child: new Card(
                  color: Colors.blue.shade200,
                  child: new Center(
                  child: new Text('$index'),
                    )
                  )
              );
                })),
      ) ],
  ),),
);


  }
}

1 Ответ

1 голос
/ 03 апреля 2019

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

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

Если вам нужен только виджет:

Widget bottomGridTiles(BuildContext context) {
  return Column(
    mainAxisSize: MainAxisSize.max,
    mainAxisAlignment: MainAxisAlignment.end,
    children: <Widget>[
      GridView.count(
          shrinkWrap: true, // Important
          crossAxisCount: 4,
          children: List<Widget>.generate(8, (index) {
            return GridTile(
                child: Card(
                    color: Colors.blue.shade200,
                    child: Center(
                      child: Text('$index'),
                    )));
          }))
    ],
  );
}

Если вам нужен диалог с виджетом:

void _buildDialog(BuildContext context) {
  showDialog(
      context: context,
      builder: (context) {
        return bottomGridTiles(context);
      });
}

Виджет, открывающий диалоговое окно:

Widget openDialogButton(BuildContext context) {
  return RaisedButton(
    onPressed: () => _buildDialog,
    child: Text("Open Dialog"),
  );
}
...