[英]Unhandled Exception: Exception: Please provide ShowCaseView context in flutter
我正在嘗試在 flutter 應用程序中使用 package ShowoCaseView ,這是我所做的步驟:
GlobalKey _oneShowcaseKey = GlobalKey();
startShowCase() {
WidgetsBinding.instance.addPostFrameCallback((_) async {
ShowCaseWidget.of(context).startShowCase([_oneShowcaseKey]);
});
}
@override
void initState() {
startShowCase();
super.initState();
}
@override
Widget build(BuildContext context) {
super.build(context);
return ShowCaseWidget(
builder: Builder(
builder: (context) => Scaffold(
child: Showcase(
key: _oneShowcaseKey,
title: 'Menu',
description: 'Click here to see menu options',
child: Column())
)
這是我在我的應用程序中實現 package 的方式,但我收到此錯誤:
[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Exception: Please provide ShowCaseView context
我也有問題。
我更改為將“ShowCaseWIdget”寫入父小部件,如下所示,此問題已解決。
class SolvedStatelessWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: ShowCaseWidget(
builder: Builder(builder: (context) => SolvedStatefulWidget())));
}
}
class SolvedStatefulWidget extends StatefulWidget {
@override
_SolvedStatefulWidgetState createState() => _SolvedStatefulWidgetState();
}
class _SolvedStatefulWidgetState extends State<SolvedStatefulWidget> {
GlobalKey _oneShowcaseKey = GlobalKey();
startShowCase() {
WidgetsBinding.instance.addPostFrameCallback((_) async {
ShowCaseWidget.of(context).startShowCase([_oneShowcaseKey]);
});
}
@override
void initState() {
startShowCase();
super.initState();
}
@override
Widget build(BuildContext context) {
super.build(context);
return yourWidget()
)
不要將 Scaffold 包裹在 ShowCaseWidget 中。 相反,將此包裝到主導航點。
例如:使用 onGenerateRoute:
return setTransition(ShowCaseWidget(
builder: Builder(
builder: (_) => DashboardView(map),
),
));
希望這能解決您的問題,如果您仍然發現任何問題,請詢問您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.