/* * @author lsy * @date 2020-01-02 **/ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_common/flutter_common.dart'; import 'package:gm_flutter/commonModel/base/BaseComponent.dart'; class PlanBarView extends StatelessWidget { final LiveData<List> managerLive; final Function(int showIndex) managerListener; final ChangeNotifier notifier; int showIndex = -1; List normalData = ["全部项目", "智能排序", "筛选"]; PlanBarView(this.managerLive, this.managerListener, this.notifier) { if (!notifier?.hasListeners) { notifier?.addListener(() { showIndex = -1; managerListener(-1); managerLive.notifyView(managerLive.data ?? normalData); }); } } @override Widget build(BuildContext context) { return managerTop(context); } managerTop(BuildContext context) { return Container( width: double.maxFinite, height: 45, child: StreamBuilder<List>( stream: managerLive.stream, initialData: managerLive.data ?? normalData, builder: (c, data) { if (data.data.length != 3) { return Container(); } return Row( children: <Widget>[ item(data.data[0], 0), item(data.data[1], 1), item(data.data[2], 2), ], ); }, )); } Widget item(String text, int index) { return Expanded( child: GestureDetector( behavior: HitTestBehavior.opaque, onTap: () { if (index == showIndex) { showIndex = -1; } else { showIndex = index; } managerListener(showIndex); managerLive.notifyView(managerLive.data ?? normalData); }, child: Container( alignment: Alignment.center, child: Row( mainAxisSize: MainAxisSize.min, children: <Widget>[ baseText(text, 14, index == showIndex ? Color(0xff3FB5AF) : Color(0xff666666)), Container( width: 10, height: 10, padding: EdgeInsets.only(top: 3), alignment: Alignment.topCenter, child: Container( width: 6, height: 3.5, child: index == showIndex ? Image.asset("assets/top_arrow.png") : Image.asset("assets/bottom_arrow.png"), ), ) ], ), ), ), ); } }