যেমন আপনি দেখতে পাচ্ছেন আমার বোতামটি স্ক্যাফোোল্ডের দেহের ভিতরে। তবে আমি এই ব্যতিক্রম পাই:
Scaffold.of () এমন একটি প্রসঙ্গে বলা হয়েছে যাতে স্ক্যাফোড থাকে না।
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('SnackBar Playground'),
),
body: Center(
child: RaisedButton(
color: Colors.pink,
textColor: Colors.white,
onPressed: _displaySnackBar(context),
child: Text('Display SnackBar'),
),
),
);
}
}
_displaySnackBar(BuildContext context) {
final snackBar = SnackBar(content: Text('Are you talkin\' to me?'));
Scaffold.of(context).showSnackBar(snackBar);
}
সম্পাদনা করুন:
আমি এই সমস্যার আর একটি সমাধান খুঁজে পেয়েছি। যদি আমরা স্ক্যাফোল্ডকে এমন কী দিয়ে থাকি যা গ্লোবালকি হয় তবে আমরা স্নাকবারকে বিল্ডার উইজেট দিয়ে আমাদের দেহটি মোড়ানোর প্রয়োজন ছাড়াই নিম্নলিখিত হিসাবে প্রদর্শিত করতে পারি। স্ক্যাফোর্ডটি যে উইজেটটি ফেরত দেয় তা স্টেটফুল উইজেট হওয়া উচিত:
_scaffoldKey.currentState.showSnackBar(snackbar);