반응형
질문
다음에 따르면: 샘플 코드
나는 TabController의 내 구현을 만들었습니다:
void main() {
runApp(new MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
TabController _tabController;
@override
void initState() {
super.initState();
_tabController = new TabController(vsync: this, length: choices.length);
}
@override
void dispose() {
_tabController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
bottomNavigationBar: new Material(
color: Colors.blue,
child: new TabBar(
controller: _tabController,
isScrollable: false,
tabs: choices.map((Choice choice) {
return new Tab(
text: null,
icon: new Icon(choice.icon),
);
}).toList(),
),
),
appBar: new AppBar(
title: const Text('Swap'),
),
body: new TabBarView(
controller: _tabController,
children: choices.map((Choice choice) {
return new Padding(
padding: const EdgeInsets.all(16.0),
child: new ChoiceCard(choice: choice),
);
}).toList(),
),
),
);
}
}
라인에서: _tabController = new TabController(vsync: this, length: choices.length);
나는 다음 오류 메시지를 받았습니다:
오류: 인수 유형 '_MyAppState'이(가) 'TickerProvider' 매개변수 유형에 할당할 수 없습니다. (argument_type_not_assignable at [swap] lib/main.dart:24)
내 코드에 무엇이 잘못되었나요?
답변
State
의 클래스 선언의 끝에 with TickerProviderStateMixin
을 추가하세요.
반응형
댓글