0

I am creating a flutter app which has a gridview of Cupertino buttons which are all gonna be clickable and when clicked pass on to a new page. I have managed to create one Cupertino button with the help of this article - https://medium.com/@zhijjjj/flutter-ios-style-clickable-card-35aa151a6116 I want to make many more buttons, but I am unable to work out the way. Please can someone help me?

1 Answers1

0

You can try GridView in a flutter

How to use GridView? Here are many examples how to use it

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(

      color: Colors.white30,
      child: GridView.count(
          crossAxisCount: 4,
          childAspectRatio: 1.0,
          padding: const EdgeInsets.all(4.0),
          mainAxisSpacing: 4.0,
          crossAxisSpacing: 4.0,
          children: <String>[
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
            'http://www.for-example.org/img/main/forexamplelogo.png',
          ].map((String url) {
            return GridTile(
                child: Image.network(url, fit: BoxFit.cover));
          }).toList()),
    );
  }
}

enter image description here

EDIT Asked

if I want multiple cards with different images in the background and different text on top of it, can it be possible?

Then you can use flutter_staggered_grid_view plugin you can find it here

new StaggeredGridView.countBuilder(
  crossAxisCount: 4,
  itemCount: 8,
  itemBuilder: (BuildContext context, int index) => new Container(
      color: Colors.green,
      child: new Center(
        child: new CircleAvatar(
          backgroundColor: Colors.white,
          child: new Text('$index'),
        ),
      )),
  staggeredTileBuilder: (int index) =>
      new StaggeredTile.count(2, index.isEven ? 2 : 1),
  mainAxisSpacing: 4.0,
  crossAxisSpacing: 4.0,
)

enter image description here

Jasurbek
  • 2,946
  • 3
  • 20
  • 37
  • thank you for this, but if I want multiple cards with different images in the background and different text on top of it, can it be possible? – Nishit Mistry Jul 06 '20 at 10:10