Логическое решение флаттера между видео и изображением в пользовательском интерфейсе - PullRequest
0 голосов
/ 28 мая 2020

Я немного потерялся в приложении, которое пытаюсь написать. Я хотел бы отобразить либо изображение, либо видео - в зависимости от записи в списке.

Итак, если запись в списке, который я сейчас показываю, имеет видео, я хочу использовать Chew ie Player в пользовательском интерфейсе

child = Chewie(
       controller: _chewieController,
)

если запись в списке, который я сейчас показываю, имеет изображение, которое я хочу использовать CachedNetworkImage:

CachedNetworkImage(imageUrl: _questions[widget.questionno].getSourceUrl(),)

как вы, наверное, заметили, Я новичок в программировании. Как я могу решить эту проблему?

Прямо сейчас код, который я пытаюсь использовать в пользовательском интерфейсе, выглядит следующим образом:

Container(
  if (_questions[widget.questionno].getVideo()=="Ja") {
    child = Chewie(
           controller: _chewieController,
    )
  } else {
    child = CachedNetworkImage(imageUrl: _questions[widget.questionno].getSourceUrl(),)
  }

),

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

наконец-то заработал, вероятно, это не лучший способ, но что бы то ни было, он работает, и я очень счастлив: D

child: Builder(
    builder: (context) {
      if (_questions[widget.questionno].getVideo()=='Ja') {
        return 
        Container(child: Chewie(controller: _chewieController,));
      } else {
        return 
        Container(child: CachedNetworkImage(imageUrl: _questions[widget.questionno].getSourceUrl(),));
      }
    }
  )

Вдобавок мне также пришлось добавить полное определение жевания ie контроллер (который находится в initState) в объект if ie.

0 голосов
/ 28 мая 2020

Попробуйте что-то вроде этого:

bool video = false

if(entryInList is Video){ //Replace Video with whatever type you would have 
                          //for Videos
  video = true
}

И в дереве виджетов

child: video ? VideoWidget() : FotoWidget()

Или все в одной строке:

child: entryInList is Video ? VideoWidget() : FotoWidget()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...