ListView.Builder внутри ListView.Builder не работает (вложенные списки) - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь создать ShowDialog с AlertDialog, который показывает вложенный ListView:

  showDialog(
    context: context,
    builder: (BuildContext context) {
      return new AlertDialog(
        contentPadding: EdgeInsets.all(0.0),
        content: new Container(
          decoration: BoxDecoration(
            borderRadius: new BorderRadius.circular(40.0),
          ),
          height: 300.0,
          width: 300.0,
          child: new ListView.builder(
              shrinkWrap: true,
              itemCount: filteredKits == null ? 0 : filteredKits.length,
              itemBuilder: (BuildContext context, int index) =>
                  new StickyHeader(
                      header: new Container(
                        width: 300.0,
                        height: 30.0,
                        color: Colors.grey[700],
                        child: Text(
                          kitTypes[index],
                          style: TextStyle(
                              color: Colors.white,
                              fontWeight: FontWeight.w600,
                              fontSize: 15.0),
                        ),
                        padding: EdgeInsets.all(12.0),
                      ),
                      content: SizedBox(
                        height: 80.0,
                        width: 300.0,
                        child: getBrands(
                            kitTypes[index], filteredKits, context), // Function that returns Other ListView.Builder()
                      ))),
        ),
      );
    },
  );

Функция:

  getBrands(String kitType, List<Kits> filteredkits, context) {
    var brandlist = filteredkits
        .where((kit) => kit.type == kitType)
        .map((kit) => kit.brand)
        .toList();

    var brandfilter = brandlist.toSet().toList();

    return new ListView.builder(
      shrinkWrap: true,
      itemCount: brandfilter == null ? 0 : brandfilter.length,
      itemBuilder: (BuildContext context, int index) =>
          new Text(brandfilter[index]),
    );
  }

Теперь это работает, но только если я помещаю SizeBox во второй список, и результат не очень хороший, потому что я хочу, чтобы ListView занимал все пространство

Статический размер, и когда во вложенном списке больше параметров, показывающих ошибку

enter image description here

...