Если я вас правильно понял, это ожидаемый результат:
Код ниже.Если я правильно понял ваш вопрос, вам не нужно переносить MyHomePage2
в виджет MaterialApp .Поэтому вам не нужен виджет MyApp2
, если у вас нет веских причин использовать два виджета MaterialApp
.Обычно вы хотите использовать только один MaterialApp
виджет в вашем приложении.
import 'package:flutter/material.dart';
import './firstpage.dart' ;
import './secondpage.dart';
import './thirdpage.dart' ;
import './fourthpage.dart';
import './fifthpage.dart' ;
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage>
with SingleTickerProviderStateMixin {
TabController controller;
@override
void initState() {
super.initState();
controller = new TabController(vsync: this, length: 5);
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Test App"),
backgroundColor: Colors.teal,
),
bottomNavigationBar: new Material(
color: Colors.teal,
child: new TabBar(
controller: controller,
tabs: <Widget>[
new Tab(icon: new Icon(Icons.home)),
new Tab(icon: new Icon(Icons.calendar_today)),
new Tab(icon: new Icon(Icons.library_music)),
new Tab(icon: new Icon(Icons.camera)),
new Tab(icon: new Icon(Icons.more)),
],
),
),
body: new TabBarView(controller: controller, children: <Widget>[
new MyHomePage2(),
new SecondPage(),
new ThirdPage(),
new FourthPage(),
new FifthPage(),
]),
);
}
}