news_getx/lib/modules/main/widgets/categories.dart

48 lines
1.7 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:news_getx/modules/main/main_controller.dart';
import 'package:news_getx/theme/app_colors.dart';
class NewsCategoriesWidget extends GetView<MainController> {
@override
Widget build(BuildContext context) {
// 用的是Row 而不是 Tab
return Obx(
() => controller.state.categories == null
? Container()
: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: controller.state.categories!.map<Widget>(
(item) {
return Container(
alignment: Alignment.center,
height: 52.h,
padding: EdgeInsets.symmetric(horizontal: 8),
child: GestureDetector(
onTap: () {
// 拉取对应分类的数据
controller.asyncLoadNewsData(item.code);
},
child: Text(
item.title,
style: TextStyle(
color: controller.state.selCategoryCode == item.code
? AppColors.secondaryElementText
: AppColors.primaryText,
fontSize: 18.h,
fontFamily: 'Montserrat',
fontWeight: FontWeight.w600,
),
),
),
);
},
).toList(),
),
),
);
}
}