Appearance
源码:labs/flutter/host/lib/topics/state_routing_architecture/flutter_routing_basic/routing_home_page.dart
- 原始路径:
labs/flutter/host/lib/topics/state_routing_architecture/flutter_routing_basic/routing_home_page.dart - 类型:
dart
dart
import 'package:flutter/material.dart';
import '../../../l10n/l10n.dart';
class RoutingHomePage extends StatefulWidget {
const RoutingHomePage({super.key});
static const routeName = '/routing-basic';
static const detailRouteName = '/routing-basic/detail';
@override
State<RoutingHomePage> createState() => _RoutingHomePageState();
}
class _RoutingHomePageState extends State<RoutingHomePage> {
String _lastResult = '';
Future<void> _openDetail() async {
final result = await Navigator.of(context).pushNamed(
RoutingHomePage.detailRouteName,
arguments: RoutingDetailArgs(id: 42, title: context.l10n.routingDetailArgsTitle),
);
if (!mounted) return;
setState(() {
_lastResult = '$result';
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(context.l10n.routingAppBarTitle)),
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
ElevatedButton(
onPressed: _openDetail,
child: Text(context.l10n.routingBtnOpenDetail),
),
const SizedBox(height: 16),
Text(
_lastResult.isEmpty
? context.l10n.routingNoResult
: context.l10n.routingLastPopResult(_lastResult),
),
],
),
),
);
}
}
class RoutingDetailArgs {
const RoutingDetailArgs({required this.id, required this.title});
final int id;
final String title;
}