You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
3.1 KiB

3 years ago
import 'package:flutter/material.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/retrofit/data/goods_category.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/item_title.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class PointsGoodsTitle extends StatefulWidget {
final ValueChanged<int> onTap;
final Function(int orderType, bool orderDesc) sortChange;
final List<GoodsCategory> gooodsCategorys;
PointsGoodsTitle(this.gooodsCategorys, this.sortChange, this.onTap);
@override
State<StatefulWidget> createState() {
return _PointsGoodsTitle();
}
}
class _PointsGoodsTitle extends State<PointsGoodsTitle> {
var _itemText = S.current.morenpaixu;
List<String> sortString = [
S.current.morenpaixu,
S.current.jifengaodaodi,
S.current.jifendidaogao,
];
@override
Widget build(BuildContext context) {
return Column(
children: [
ItemTitle(
text: S.of(context).jifenshangcheng,
imgPath: "assets/image/icon_points_mall.png",
moreText: _itemText,
moreType: 1,
items: sortString
.map(
(e) => DropdownMenuItem(
value: e,
child: Text(
e,
style: TextStyle(
fontSize: 12.sp,
fontWeight: MyFontWeight.medium,
color: Color(0xff353535),
),
),
),
)
.toList(),
onChanged: _sortChange,
),
Container(
alignment: Alignment.centerLeft,
child: DefaultTabController(
length: widget.gooodsCategorys == null
? 0
: widget.gooodsCategorys.length,
child: TabBar(
isScrollable: true,
//可滚动
indicatorColor: Color(0xff39B54A),
labelColor: Color(0xff32A060),
labelStyle: TextStyle(
fontSize: 14.sp,
fontWeight: FontWeight.bold,
),
unselectedLabelStyle: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.regular,
),
// controller: tabController,
//未选中文字颜色
unselectedLabelColor: Color(0xff4D4D4D),
indicatorSize: TabBarIndicatorSize.label,
//指示器与文字等宽
tabs: widget.gooodsCategorys == null
? []
: widget.gooodsCategorys
.map((e) => Tab(text: e.name))
.toList(),
onTap: widget.onTap,
),
),
),
],
);
}
_sortChange(item) {
var index = sortString.indexOf(item);
switch (index) {
case 0:
widget.sortChange(1, true);
break;
case 1:
widget.sortChange(3, true);
break;
case 2:
widget.sortChange(3, false);
break;
}
setState(() {
_itemText = item;
});
}
}