Flutter carousel_slider 4.0.0 тип ошибки 'Null' не является подтипом типа 'List <int>' в приведении типов
Я использую свое приложение flutter (версия с нулевой безопасностью) для carousel_slider 4.0.0 , слайдер работал, но я столкнулся с этой ошибкой
тип 'Null' не является подтипом типа 'List' в приведении типа
какое-нибудь решение для этого?
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:flutter_svg/svg.dart';
import 'package:carousel_slider/carousel_slider.dart';
import 'package:rmapp/provider/theme_provider.dart';
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
//swiper current index
late final List<String> imageList = [
"https://www.setaswall.com/wp-content/uploads/2018/08/Spiderman-Wallpaper-76-1280x720.jpg",
"https://lh3.googleusercontent.com/proxy/yL2FmQfZA79S5eIDza9MH2NjKGIKWPOGRHxHdYwiNPcYDW26YmK6qnP01ZDLsBENZpiADc1ohkj3LzVjrwoX8Pb-crT6MYZb3Jp9gy3ZrlET_yvoFS0qtUHLq4DtVPcqIdxPiNWI_j08omBVACv-YJc",
];
@override
Widget build(BuildContext context) {
Provider.of<ThemeProvider>(context).themeMode == ThemeMode.dark
? 'DarkTheme'
: 'LightTheme';
return Scaffold(
// Setting up AppBar
appBar: AppBar(
automaticallyImplyLeading: false,
iconTheme: Theme.of(context).iconTheme,
),
// Setting up Background Color
// Body
body: Container(
child: ListView(
physics: ClampingScrollPhysics(),
children: <Widget>[
Padding(
padding: EdgeInsets.only(left: 16, bottom: 10, top: 10,),
child: Text(
'Hi, Welcome back!',
//style: mTitleStyle,
),
),
//Promo Slider
_promoSlider(),
],
),
),
);
}
//Promo Slider
Widget _promoSlider() {
return Container(
child: CarouselSlider(
options: CarouselOptions(
enlargeCenterPage: true,
enableInfiniteScroll: false,
autoPlay: true,
),
items: imageList.map((e) => ClipRRect(
borderRadius: BorderRadius.circular(8),
child: Stack(
fit: StackFit.expand,
children: <Widget>[
Image.network(e,
width: 1050,
height: 350,
fit: BoxFit.cover,)
],
) ,
)).toList(),
),);
}
}
3 ответа
Эта ошибка может указывать на то, что что-то в вашем
imageList
нулевой. В
CarouselSlider
требует ненулевых параметров для ключей / значений в своих
items
атрибут.
возвращает 404, а не изображение.
получить еще один
Попался в ту же проблему. Хотя удаление плохой ссылки решает проблему, это не предотвращает ее повторное возникновение без ручного вмешательства. Итак, я закончил тем, что написал небольшой фрагмент кода, который по существу очищает imageList перед передачей его в Carousel Slider. Вот соответствующий фрагмент:
import 'package:http/http.dart' as http;
Future<bool> photoExists(String photourl) async {
final response = await http.get(Uri.parse(photourl));
if (response.statusCode == 200) {
return true;
} else {
return false;
}
}
List imageList = original_imageList; // replace original_imageList with the appropriate list of urls
for (String singleImage in imageList) {
photoExists(singleImage).then((value) {
if (!value) {
imageList.remove(singleImage);
}
});
}
теперь вы можете использовать imageList в свойстве items: слайдера Carousel
Примечание: так как это будущее, вы можете получить сообщение об ошибке null в консоли, но вы не увидите "пустое" изображение в слайдере карусели.