• Source
    1. import 'package:flutter/material.dart';
    2.  
    3. class WrapPage extends StatefulWidget {
    4. @override
    5. State<StatefulWidget> createState() => WrapPageState();
    6. }
    7.  
    8. class WrapPageState extends State<WrapPage> {
    9. List<String> titles = [
    10. '單人',
    11. '角色扮演',
    12. '橫向式動作',
    13. '動漫改編',
    14. '末日求生',
    15. '獵奇',
    16. '未滿 10 歲請勿購買',
    17. '霹靂卡霹靂拉拉 波波力那貝貝魯多'
    18. ];
    19.  
    20. @override
    21. Widget build(BuildContext context) {
    22. return Scaffold(
    23. appBar: new AppBar(
    24. title: Text('Wrap'),
    25. ),
    26. body: Container(
    27. padding: EdgeInsets.all(8),
    28. child: Wrap(
    29. children: _buildTags(titles),
    30. spacing: 8,
    31. runSpacing: 8,
    32. ),
    33. ),
    34. );
    35. }
    36.  
    37. /// 從陣列建立所有項目
    38. List<Widget> _buildTags(List<String> titles) {
    39. List<Widget> tags = [];
    40. for (String title in titles) {
    41. Widget tag = ClipRRect(
    42. borderRadius: BorderRadius.circular(10.0),
    43. child: Container(
    44. color: Colors.greenAccent,
    45. child: Text(
    46. title,
    47. style: TextStyle(color: Colors.white, fontSize: 14),
    48. ),
    49. padding: EdgeInsets.all(8),
    50. ),
    51. );
    52. tags.add(tag);
    53. }
    54. return tags;
    55. }
    56. }
    57.