1 Вопрос: GridView проблемы с высотой

вопрос создан в Thu, May 2, 2019 12:00 AM

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

Вот фактический код

body: GridView.builder(
            itemCount: List_features.length,
            gridDelegate:
                SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
            itemBuilder: (BuildContext context, int index) {
              return Item(
                  List_features[index]["title"],
                  "https://image.tmdb.org/t/p/w200/${List_features[index]["poster_path"]}",
                  List_features[index]["vote_average"].toString());
            })
class Item extends StatelessWidget {
  String title;
  String link;
  String note;

  Item(this.title, this.link, this.note);

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.only(bottom: 8.0),
      child: Column(
        children: <Widget>[
          Flexible(
            child: Card(
                color: Colors.transparent,
                elevation: 5.0,
                child: ClipRRect(
                    borderRadius: BorderRadius.circular(10.0),
                    child: Container(
                      color: Colors.white,
                      height: 240,
                      width: 160,
                      child: Image.network(link),
                    ))),
          ),
          Container(
            width: 180,
            child: Text(
              title,
              textAlign: TextAlign.center,
              style: TextStyle(fontSize: 18),
            ),
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[Icon(Icons.star), Text(note)],
          ),
        ],
      ),
    );
  }
}
    
- 1
1 ответ                              1                         

Я не понял структуру ваших List_features, поэтому я написал этот код. Здесь изменился класс Item, также я использовал GridView.count вместо GridView.builder я надеюсь, что вы приспособитесь к вашим целям вот рабочий код, просто скопируйте и вставьте, чтобы увидеть, как он работает

import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Title')),
        body: GridView.count(
          crossAxisCount: 2,
          childAspectRatio: 0.67,
          children: List_features.map((item) {
            return Item(item[0], "${item[1]}", item[2].toString());
          }).toList(),
        ),
      ),
    );
  }
}

final List_features = [
  ['title', 'https://picsum.photos/1000/1500', 9.7],
  ['title', 'https://picsum.photos/1000/1500', 9.7],
  ['title', 'https://picsum.photos/1000/1500', 9.7],
  ['title', 'https://picsum.photos/1000/1500', 9.7],
  ['title', 'https://picsum.photos/1000/1500', 9.7],
  ['title', 'https://picsum.photos/1000/1500', 9.7],
];

class Item extends StatelessWidget {
  String title;
  String link;
  String note;

  Item(this.title, this.link, this.note);

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.only(bottom: 8.0),
      child: Column(
        children: <Widget>[
          Flexible(
            fit: FlexFit.tight,
            child: Container(
              child: Card(
                  child: ClipRRect(
                      borderRadius: BorderRadius.circular(10.0),
                      child: Image.network(link))),
            ),
          ),
          Container(
            child: Text(
              title,
              textAlign: TextAlign.center,
              style: TextStyle(fontSize: 18),
            ),
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[Icon(Icons.star), Text(note)],
          ),
        ],
      ),
    );
  }
}

 введите описание изображения здесь

    
1
2019-05-02 16: 07: 28Z
  1. Выглядит идеально, но как я перебираю Список, я получил это от Json, List List_features = _data["results"];, я пытался использовать for, но не работает
    2019-05-02 18: 55: 43Z
источник размещен Вот