主页上有一个平面图的视图,每个房间都“展示”不同的作品(请参见所附图像) >
图库名称{salmonComplex}在应用打开时显示为标题,但是当用户用胶带贴进其中一个房间时,我希望房间名称替换或出现在{salmonComplex}下
我创建了一个类MainPageHeading
和一个List<String>
来生成标题,并带有一个整数mainPageNumber
,以便我可以生成标题(我从最近课程中构建的一个测验应用程序中借用了这个想法)。
这里是东西
是否有一种方法可以显示不同的房间名称,而不必复制整个班级例如,使用新类名中的所有代码,例如originalExhibitionHeading。
我的意思是说这很长,但是有一种方法可以使用List和我需要的位。
现在,它通过MainPageHeading []在列表中查找。锁定页面标题。是否有更好的方式来划分房间标题,具体取决于用户进入哪个房间。
任何想法都会节省我的时间。
thnks
class MainPageHeading extends StatefulWidget {
@override
_MainPageHeadingState createState() => _MainPageHeadingState();
}
class _MainPageHeadingState extends State<MainPageHeading> {
List<String> mainPageHeading = [
'{ theSalmon', //0 mainloading page heading
'Complex', //1
' }' //2
];
int mainPageNumber = 0;
@override
Widget build(BuildContext context) {
return Container(
child: RichText(
text: TextSpan(
text: mainPageHeading[0],
style: TextStyle(
color: Colors.grey[700],
fontFamily: 'saturn',
fontSize: 25.0,
fontWeight: FontWeight.bold),
children: [
TextSpan(
text: mainPageHeading[1],
style: TextStyle(
color: Colors.grey[500],
fontFamily: 'saturn',
fontSize: 25.0,
fontStyle: FontStyle.italic,
)),
TextSpan(
text: mainPageHeading[2],
style: TextStyle(
color: Colors.grey[700],
fontFamily: 'saturn',
fontSize: 25.0,
fontWeight: FontWeight.bold,
)),
]),
textAlign: TextAlign.center,
),
);
}
}
[homePage][1]
void main() {
runApp(AppState());
}
class AppState extends StatefulWidget {
@override
_AppStateState createState() => _AppStateState();
}
class _AppStateState extends State<AppState> {
var titleText = "FirstTitle";
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Titolo",
theme: ThemeData(primarySwatch: Colors.blue),
home: Scaffold(
appBar: AppBar(
title: TitleWidget(),
),
body: Center(
child: FlatButton(
child: Text("Change title"),
onPressed: () {
setState(() {
titleText = "Other Title";
});
},
),
),
),
);
}
}
class TitleWidget extends StatelessWidget {
final titleText;
TitleWidget({this.titleText});
@override
Widget build(BuildContext context) {
return Text(titleText);
}
}
我为您编写了一些示例代码,以演示如何执行此类操作。