Flutter ListView.builder не работает в диалоговом окне предупреждения

#flutter #listview #dart #flutter-layout #flutter-alertdialog

#flutter #listview #dart #flutter-макет #flutter-alertdialog

Вопрос:

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

 AlertDialog(
      titlePadding: EdgeInsets.all(0),
      contentPadding: EdgeInsets.symmetric(horizontal: 10, vertical: 0),
      title: Text("Heading"),
      content: ListView.builder(
          shrinkWrap: true,
          itemCount: items.length,
          itemBuilder: (ctx, i) {
            return getRowWidget(i);
          }),
    );
  

Комментарии:

1. Пожалуйста, скажите нам, что означает «это не работает». Вы получаете ошибки компилятора? Ошибки во время выполнения? Не похоже ли это на то, как вы хотите, чтобы это выглядело?

Ответ №1:

Это решит вашу проблему, добавьте Container ширину.

      showDialog(
                context: context,
                builder: (context) => AlertDialog(
                  titlePadding: EdgeInsets.all(0),
                  contentPadding: EdgeInsets.symmetric(horizontal: 10, vertical: 0),
                  title: Text("Heading"),
                  content: Container(
                    width: double.maxFinite,
                    child: ListView.builder(
                        shrinkWrap: true,
                        itemCount: items.length,
                        itemBuilder: (ctx, i) {
                          return Text(items[i].toString());
                        }),
                  ),
                ),
              );
  

Комментарии:

1. @Rohit Soni: удовлетворяет ли это вашим требованиям?

Ответ №2:

Используйте этот код.

        showDialog(
              context: context,
              builder: (context) => AlertDialog(
                titlePadding: EdgeInsets.all(0),
                contentPadding:
                    EdgeInsets.symmetric(horizontal: 10, vertical: 0),
                title: Text("Heading"),
                content: Container(
                  height: 100,
                  child: ListView.builder(
                      shrinkWrap: true,
                      itemCount: 1,
                      itemBuilder: (ctx, i) {
                        return Text("text");
                      }),
                ),
              ),
            );