У меня есть приложение flutter
, где главный экран имеет вид tabBar
, например:
class MainRoute extends StatelessWidget {
@override
Widget build(BuildContext context) {
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
return MaterialApp(
home: DefaultTabController(
length: 3,
child: Scaffold(
body: TabBarView(
physics: NeverScrollableScrollPhysics(),
children: [
Container(
color: Color.fromRGBO(40, 40, 40, 1.0),
child: Tab1(),
),
Container(
color: Color.fromRGBO(40, 40, 40, 1.0),
child: Tab2(),
),
Container(
color: Color.fromRGBO(40, 40, 40, 1.0),
child: Tab3(),
),
],
),
bottomNavigationBar: TabBar(
labelStyle: null,
tabs: [
Tab(
icon: Icon(MdiIcons.home),
),
Tab(
icon: Icon(MdiIcons.settings),
),
Tab(
icon: Icon(MdiIcons.account),
)
],
indicatorColor: Colors.transparent,
labelColor: Color.fromRGBO(255, 255, 255, 1),
unselectedLabelColor: Color.fromRGBO(255, 255, 255, .3),
),
backgroundColor: Colors.black,
),
),
);
И, например, мой Tab3 () выглядит так:
class Tab3 extends StatefulWidget {
@override
State<StatefulWidget> createState() => Tab3State();
}
class Tab3State extends State<Tab3> {
@override
Widget build(BuildContext context) {
// TODO: Implement build
return Scaffold(
body: Center(
child: Container(
padding: EdgeInsets.only(top: 50),
width: MediaQuery
.of(context)
.size
.width,
height: MediaQuery
.of(context)
.size
.height,
color: Colors.white,
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.all(10),
child: RaisedButton(
padding: const EdgeInsets.all(20.0),
textColor: Colors.white,
onPressed: () {
print("GAllery tapped");
},
color: Colors.blue,
elevation: 10,
child: Text("Gallery"),
),
),
],
),
),
),
);
}
}
Приложение работает нормально в эмуляторе, но когда я запускаю на реальном устройстве Adnroid, у него возникает проблема с краном.
Когда отображается MainRoute
, если я пытаюсь перейти к последней вкладке, нажав значок, при первом нажатии на него он не распознается (не в фокусе ???) во второй раз и с этого момента работает как положено, то же самое для всех вкладок только при первом нажатии.
Теперь, когда загружено Tab3
, кнопка Галерея не распознает первое касание (тоже не в фокусе ???), но затем распознается второе касание, и оно теперь работает.
Это проблема с кодом? проблема с архитектурой кода? проблема с моим реальным устройством (Samsung Galaxy S7)?