Как заменить список изображений списком виджетов во флаттере? - PullRequest
0 голосов
/ 13 июня 2019

Здравствуйте. Я пытался использовать этот плагин для карт тиндер, но примерная строка списка используется для отображения ресурсов для каждой новой карты, но я ищу, чтобы изменить контейнер с большим содержанием, таким как текст, изображение и т. Д.

вот пример:

 List<String> welcomeImages = [
    "assets/welcome0.png",
    "assets/welcome1.png",
  ];

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new Center(
          child: Container(
              height: MediaQuery.of(context).size.height * 0.6,
              child: new TinderSwapCard(
             ...
                cardBuilder: (context, index) => Card(
                      child: Image.asset('${welcomeImages[index]}'),
                    ),
              ))),
    );

Я ищу что-то вроде этого:

  List<widget> my_list_of_widget= [
        widget1()
        widget2()
      ];

    widget1(){
    return column[
     text 
     image
     etc 
    ]
   }

   widget2(){
   return column[
    text 
    image
    etc 
    ]
  }

      @override
      Widget build(BuildContext context) {
        return new Scaffold(
          body: new Center(
              child: Container(
                  height: MediaQuery.of(context).size.height * 0.6,
                  child: new TinderSwapCard(
               ...
                    cardBuilder: (context, index) => Card(
                          child: my_list_of_widget
                        ),
                  ))),
        );

Я обнаружил этот другой плагин для Tinder Card, но проблема с примером:

new Swiper(
    itemBuilder: (BuildContext context, int index) {
      return new Image.network(
        "http://via.placeholder.com/288x188",
        fit: BoxFit.fill,
      );
    },
    itemCount: 2,
    itemWidth: 300.0,
    itemHeight: 400.0,
    layout: SwiperLayout.TINDER,
 )

Мне нужно что-то вроде этого:

new Swiper(
        itemBuilder: (BuildContext context, int index) {
          return children[
          widget 1()  //index1
          widget 2()  //index2
         ]
        },
        itemCount: 2,
        itemWidth: 300.0,
        itemHeight: 400.0,
        layout: SwiperLayout.TINDER,
     )

Мне удалось использовать этот пример плагина swiper, но я не могу использовать макет: SwiperLayout.TINDER, если используется child: []

 new Swiper.children(
              viewportFraction: 0.7,
              scale: 0.7,
              autoplay: false,
              loop: true,

              control: new SwiperControl(

                  size: 25.0,
                  color: Colors.pink,
                  padding: const EdgeInsets.all(5.0)),
              pagination: new SwiperPagination(
                  margin: new EdgeInsets.fromLTRB(0.0, 0.0, 0.0, 0.0),
                  builder: new DotSwiperPaginationBuilder(
                      color: Color(0xff7589a2),
                      activeColor: Colors.pink,
                      size: 4.0,
                      activeSize: 8.0)),

              children: <Widget>[

 Text("blablabla1");

 Text("blablabla2");

     ],
   ),
 ),
)

)

1 Ответ

0 голосов
/ 13 июня 2019

Попробуйте это:

  List<Widget> welcomeWidgets =
      List<Widget>.from(welcomeImages.map((String asset) {
    return Column(
      children: <Widget>[Text(asset), Image.asset(asset)],
    );
  }));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...