web-dev-qa-db-ja.com

グリッドビューの列の高さを設定する方法

私はたった1日の経験を羽ばたくのが初めてです
私はAndroidフラッターを使用してアプリを開発しようとしています、これは私の以前のアプリのデザインです- enter image description here

そして、私はフラッターでグリッドビューを正常に作成しましたが、列の高さが問題です私を助けることができる彼らの誰でもです
私の羽ばたきコード

 class MyHomePage extends StatelessWidget {

  @override
   Widget build(BuildContext context) {
     hi(){

    }
     return new Scaffold(

         appBar: new AppBar(
           actions: <Widget>[],
                title: new Text("milla"),
              ),
       body: new Container(


         child: new Center(

            child: new GridView.count(
              shrinkWrap: true,
              scrollDirection: Axis.vertical,
              childAspectRatio:1.0,
              crossAxisCount: MediaQuery.of(context).size.width <= 400.0 ? 3 : MediaQuery.of(context).size.width >= 1000.0 ? 5 : 4,

           // Create a grid with 2 columns. If you change the scrollDirection to
           // horizontal, this would produce 2 rows.

           crossAxisSpacing: 2.0,
           // Generate 100 Widgets that display their index in the List
           children: new List.generate(100, (index) {

             return  new Column(
                 crossAxisAlignment: CrossAxisAlignment.stretch,
                 mainAxisSize: MainAxisSize.min,

                 verticalDirection: VerticalDirection.down,
                 children: <Widget>[


                   new Center(

                     child:  new Image(


                         image: new NetworkImage('https://github.com/flutter/website/blob/master/_includes/code/layout/lakes/images/lake.jpg?raw=true')
                     )
                   ),
                   new Expanded(child: new Text("Apple2")), new Expanded(child: new Text(
                   'Item $index',
                   style: Theme.of(context).textTheme.headline,
                 )),new Expanded(child: new Center(child: new Row(
                     crossAxisAlignment: CrossAxisAlignment.center,

                     children: <Widget>[new Text("+",style: new TextStyle(fontSize: 24.0),),new Text("1"),new Text("-")])))]
             );
           }),
         ),
        ),
      )
     );
   }
 }

そして、これが私の出力です enter image description here 。列の高さを設定するには?
新しいビューを追加すると、このエラーが表示されます
「別の例外がスローされました:下部の21ピクセル分、RenderFlexがオーバーフローしました。」

7
Midhilaj

あなたはこれを試すかもしれません:

GridView.count(
   crossAxisCount: 2,
   childAspectRatio: MediaQuery.of(context).size.height / 400,
   children: <Widget>[...]
);
2

これを試して

childAspectRatio: mediaQueryData.size.height / 1000,

どこ

MediaQueryData mediaQueryData = MediaQuery.of(context);

私はどこかでこのコードを見て、私には問題がないように見えます。

0
stuckedoverflow