user_interface_list.dart 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import 'package:bloc_example/screens/chat_room.dart';
  2. import 'package:bloc_example/screens/escort_publish.dart';
  3. import 'package:bloc_example/screens/existing_member_hidden_detail.dart';
  4. import 'package:bloc_example/screens/messages_page.dart';
  5. import 'package:bloc_example/screens/web_socket.dart';
  6. import 'package:flutter/material.dart';
  7. import 'pin_input_screen.dart';
  8. import 'new_member_without_channel.dart';
  9. import 'new_member_with_channel.dart';
  10. import 'existing_member_hidden.dart';
  11. class UserInterfaceList extends StatelessWidget {
  12. final List<_ScreenItem> items = [
  13. _ScreenItem('Pin Input', PinInputScreen()),
  14. _ScreenItem('New Member Without Channel', NewMemberWithoutChannel()),
  15. _ScreenItem('New Member With Channel', NewMemberWithChannel()),
  16. _ScreenItem('Existing Member Hidden', ExistingMemberHidden()),
  17. _ScreenItem('Existing Member Hidden Detail', ExistingMemberHiddenDetail()),
  18. _ScreenItem('Chat Room', ChatRoom()),
  19. _ScreenItem('Messages', MessagesPage()),
  20. _ScreenItem('Escort Publish', EscortPublish()),
  21. _ScreenItem('Web Socket', WebSocketScreen()),
  22. ];
  23. @override
  24. Widget build(BuildContext context) {
  25. return Scaffold(
  26. appBar: AppBar(
  27. title: Text('User Interface List'),
  28. ),
  29. body: ListView.separated(
  30. itemCount: items.length,
  31. separatorBuilder: (_, __) => Divider(height: 1),
  32. itemBuilder: (context, index) {
  33. final item = items[index];
  34. return ListTile(
  35. title: Text(item.title),
  36. trailing: Icon(Icons.arrow_forward_ios),
  37. onTap: () {
  38. Navigator.push(
  39. context,
  40. MaterialPageRoute(builder: (_) => item.screen),
  41. );
  42. },
  43. );
  44. },
  45. ),
  46. );
  47. }
  48. }
  49. class _ScreenItem {
  50. final String title;
  51. final Widget screen;
  52. _ScreenItem(this.title, this.screen);
  53. }