How to put text in a swiper with flutter?

1.5k views Asked by At

I have been trying for a while putting text inside a swiper widget on flutter, but I can't, I have been searching but all I find is just with images. this is my code

Container(
    padding: EdgeInsets.only(top: 10.0 ),
    color : Colors.black12,
    child: Swiper(
      itemWidth: _screenSize.width *0.7,
      itemHeight: _screenSize.height * 0.5,          
      layout: SwiperLayout.STACK,
      itemBuilder: (BuildContext context, int  index) {
        return ClipRRect(
          borderRadius: BorderRadius.circular(20.0),
          child: Image.network("https://colourlex.com/wp-content/uploads/2017/04/Spinel-black-painted-swatch-47400-opt.jpg",fit: BoxFit.fill),

        );
      },
      itemCount: 3,                    
    ),
  );

(Image)this is what I would like to do

Thanks

1

There are 1 answers

0
chunhunghan On BEST ANSWER

You can copy paste run full code below
You can use Stack to put your text on image

code snippet

itemBuilder: (BuildContext context, int index) {
      return Stack(
        children: <Widget>[
          Center(
            child: Image.network(
              "https://colourlex.com/wp-content/uploads/2017/04/Spinel-black-painted-swatch-47400-opt.jpg",
              fit: BoxFit.fill,
            ),
          ),
          Center(
            child: Container(
              //width: 90,
              //height: 90,
              //color: Colors.white,
              child: Text("Your Text here No ${index}",
                  style: TextStyle(
                    color: Colors.white,
                  )),
            ),

working demo

enter image description here

full code

import 'package:flutter/material.dart';

import 'package:flutter_swiper/flutter_swiper.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Swiper(
        layout: SwiperLayout.STACK,
        itemWidth: 300.0,
        itemBuilder: (BuildContext context, int index) {
          return Stack(
            children: <Widget>[
              Center(
                child: Image.network(
                  "https://colourlex.com/wp-content/uploads/2017/04/Spinel-black-painted-swatch-47400-opt.jpg",
                  fit: BoxFit.fill,
                ),
              ),
              Center(
                child: Container(
                  //width: 90,
                  //height: 90,
                  //color: Colors.white,
                  child: Text("Your Text here No ${index}",
                      style: TextStyle(
                        color: Colors.white,
                      )),
                ),
              )
            ],
          );
        },
        itemCount: 3,
        pagination: SwiperPagination(),
        control: SwiperControl(),
      ),
    );
  }
}