import 'package:flutter/material.dart'; import 'package:fooddeliveryapp/constants.dart'; class Categories extends StatefulWidget { @override _CategoriesState createState() => _CategoriesState(); } class _CategoriesState extends State { List categories = ["锅底", "荤菜", "素菜", "主食", "酒水", "调料"]; int selectedIndex = 0; @override Widget build(BuildContext context) { return Padding( padding: EdgeInsets.symmetric(vertical: kDefaultPaddin), child: SizedBox( height: 35, child: ListView.builder( itemCount: categories.length, scrollDirection: Axis.horizontal, itemBuilder: (context, index) => buildCategory(index)), ), ); } Widget buildCategory(int index) { return GestureDetector( onTap: () { setState(() { selectedIndex = index; print("[order页面]选择了第" + index.toString() + "个菜单页面"); }); }, child: Padding( padding: const EdgeInsets.symmetric(horizontal: kDefaultPaddin), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( categories[index], style: TextStyle( fontWeight: FontWeight.bold, color: selectedIndex == index ? kTextColor : kTextLightColor), ), Container( margin: EdgeInsets.only(top: kDefaultPaddin / 4), height: 2, width: 30, color: selectedIndex == index ? Colors.black : Colors.transparent, ) ], ), ), ); } }