Попробуйте создать класс с именем Home и использовать его в качестве home в MaterialApp вместо непосредственного создания Scaffold. Например,
return: MaterialApp(
home: Home(),
);
, а затем
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: PreferredSize(
preferredSize: Size.fromHeight(50.0),
child: AppBar(
title: Image(
alignment: Alignment.center,
image: AssetImage('assets/images/logo.png'),
height: 70.0,
),
centerTitle: true,
iconTheme: IconThemeData(color: Color.fromRGBO(9, 133, 46, 100)),
backgroundColor: Colors.white,
actions: <Widget>[
IconButton(
icon: Icon(
Icons.person,
color: Color.fromRGBO(9, 133, 46, 100),
size: 30.0,
),
onPressed: () {
//TRY MY ANSWER
Navigator.push(
context,
MaterialPageRoute(builder: (context) => LoginScreen()));
},
),
IconButton(
icon: Icon(
Icons.shopping_cart,
color: Color.fromRGBO(9, 133, 46, 100),
size: 30.0,
),
onPressed: (){
//HOPEFULL IT WORKS :)
},
),
],
),
),
body: Builder(
...
),
),
),
floatingActionButton: RawMaterialButton(
...
),
drawer: MyDrawer(),
),
);
}
}
Вы получаете эту ошибку, потому что MaterialApp
на самом деле является потомком MyApp
. Поэтому, когда мы используем «контекст» для создания другой страницы, MyApp
BuildContext
не может использовать MaterialApp
в качестве родителя. Таким образом, использование нового класса обычно решает эту проблему!
Скажите, не работает ли он !!!