0
respostas

Utilizar InheritedWidget para detalhar informações

Tenho um Widget ListExercises que apresenta uma lista com SlidableActions que podem ser 'Selecionar' ou 'Detalhar', e outro Widget chamado DetailsExercise que basicamente precisa pegar item selecionado no ListExercise e mostrar suas informações. InhetitedWidget seria a melhor abordagem para esse caso? Como posso modelar a classe corretamente?

class ExerciseDetailsInherited extends InheritedWidget {
  final ExternalExercise exercise = ExternalExercise(
      id: '',
      name: '',
      force: '',
      level: '',
      mechanic: '',
      equipment: '',
      primaryMuscles: [],
      secondaryMuscles: [],
      instructions: [],
      category: '',
      images: []);

  ExerciseDetailsInherited({
    super.key,
    required super.child,
  });

  static ExerciseDetailsInherited? of(BuildContext context) {
    return context
        .dependOnInheritedWidgetOfExactType<ExerciseDetailsInherited>();
  }

  void updateExercise(ExternalExercise newExcercise) {
    // como atualizar a variavel do tipo final aqui? 
  }

  @override
  bool updateShouldNotify(ExerciseDetailsInherited oldWidget) {
    return oldWidget.exercise != exercise;
  }
}
ExerciseDetailsInherited(
     child: ListExercises(
    pageController: _pageController,
  ),
),
DetailsExercise(
  pageController: _pageController,
),