«CarouselController» импортируется как из «пакета: carousel_slider/carousel_controller.dart», так и из «пакета: flutter/src/material/carousel.dart»

У меня есть флаттер-код, в котором первым виджетом является слайдер-карусель. Все работало нормально, пока я не обновил флаттер. Теперь он показывает следующую ошибку

/C:/Users/Family/AppData/Local/Pub/Cache/hosted/pub.dev/carousel_slider-4.2.1/lib/carousel_slider.dart:9:1: Error: 'CarouselController' is imported from both 'package:carousel_slider/carousel_controller.dart' and 'package:flutter/src/material/carousel.dart'.
import 'carousel_controller.dart';
^^^^^^^^^^^^^^^^^^
/C:/Users/Family/AppData/Local/Pub/Cache/hosted/pub.dev/carousel_slider-4.2.1/lib/carousel_slider.dart:48:15: Error: 'CarouselController' is imported from both 'package:carousel_slider/carousel_controller.dart' and 'package:flutter/src/material/carousel.dart'.
            : CarouselController() as CarouselControllerImpl,
              ^^^^^^^^^^^^^^^^^^
/C:/Users/Family/AppData/Local/Pub/Cache/hosted/pub.dev/carousel_slider-4.2.1/lib/carousel_slider.dart:62:15: Error: 'CarouselController' is imported from both 'package:carousel_slider/carousel_controller.dart' and 'package:flutter/src/material/carousel.dart'.
            : CarouselController() as CarouselControllerImpl,
              ^^^^^^^^^^^^^^^^^^
Target kernel_snapshot_program failed: Exception


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command 'D:\Apps\flutter\bin\flutter.bat'' finished with non-zero exit value 1

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 9s

Я попытался скрыть CarouselController из пакета Material.dart, но он все равно показывает то же самое.

Ниже приведен мой код

import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart' hide CarouselController;
import 'package:reema_swad_cooking_class/bottomnavigationbar.dart';
import 'package:reema_swad_cooking_class/calendar.dart';
import 'package:reema_swad_cooking_class/coursedescription.dart';
import 'courselist.dart';
import 'sololist.dart';
import 'appbar.dart';

class HomeScreen extends StatefulWidget {
  const HomeScreen({super.key});

  @override
  State<StatefulWidget> createState() {
    return _HomeScreen();
  }
}

class _HomeScreen extends State<HomeScreen> {
  static final GlobalKey<ScaffoldState> _scaffoldKey =
      GlobalKey<ScaffoldState>();

  var selectedPage = 0;
  CarouselController buttonCarouselController = CarouselController();

  String getCourseIdFromImageName(String imageName) {
    String courseId = imageName.replaceAll(RegExp(r'[^0-9]'), '');
    return courseId;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _scaffoldKey,
      appBar: const CustomAppBar(),
      bottomNavigationBar: const CustomBottomNavigationBar(),
      body: SingleChildScrollView(
        child: Column(
          children: [
            const Padding(
              padding: EdgeInsets.only(top: 16.0, right: 16, left: 16),
              child: Row(
                children: [
                  Expanded(
                    child: Text(
                      'Upcoming Classes',
                      style: TextStyle(
                        fontSize: 24,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                  ),
                ],
              ),
            ),
            LayoutBuilder(builder: (context, constraints) {
              double aspectRatio = 16 / 9;
              double containerHeight = constraints.maxWidth / aspectRatio;

              return SizedBox(
                  width: constraints.maxWidth,
                  height: containerHeight,
                  child: CarouselSlider(
                    options: CarouselOptions(
                      height: double.infinity,
                      autoPlay: true,
                      autoPlayInterval: const Duration(seconds: 4),
                      enableInfiniteScroll: true,
                      viewportFraction: 0.95,
                      enlargeCenterPage: true,
                    ),

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Проблема в самой упаковке carousel_slider. Вы ничего не можете сделать, чтобы исправить эту проблему внутри вашего собственного кода, и ее нужно решать в самом пакете, и кажется, что они именно так и сделали, как 4 дня назад выпустили версию 5.0.0, решающую проблему путем переименования контроллера. См. https://pub.dev/packages/carousel_slider/changelog.

Так что вам просто нужно использовать последнюю версию

Ответ принят как подходящий

Вам следует обновить carousel_slider ^5.0.0.

[ИСПРАВЛЕНО] Переименуйте CarouselController в CarouselSliderController

В этой версии вам следует заменить CarouselController на CarouselSliderController.

 CarouselSliderController buttonCarouselController = CarouselSliderController();

В любом случае, используя

import 'package:flutter/material.dart' hide CarouselController;

тоже должно работать. Я попробовал это на своей стороне, и это работает. Возможно, вам нужно перезапустить IDE.

Другие вопросы по теме