
ScrollController _scrollController = ScrollController();double _scrollIndicatorWidth = 60.w;double _maxScrollPaddingValue = 30.w;double _scrollPaddingValue = 0.0;@overridevoid initState() {super.initState();_scrollController.addListener(() {setState(() {final double scrollOffset = _scrollController.offset;final double? scrollableExtent = _scrollController.position.maxScrollExtent;if(scrollableExtent != null){_scrollPaddingValue = (scrollOffset / scrollableExtent) * _maxScrollPaddingValue;}if(_scrollPaddingValue > _maxScrollPaddingValue){_scrollPaddingValue = _maxScrollPaddingValue;}});});}
@overridevoid dispose() {_scrollController.dispose();super.dispose();}
_goodsTabBar() {if(_goodsCategoryList.isNotEmpty){return Column(children: [SingleChildScrollView(controller: _scrollController,scrollDirection: Axis.horizontal,child:TabBar(controller: _tabController,isScrollable: true,labelStyle: TextStyle(fontSize: 24.sp, letterSpacing: 1),labelColor: JadeColors.green_7,labelPadding: EdgeInsets.symmetric(horizontal: 10.w),unselectedLabelColor: JadeColors.grey,unselectedLabelStyle: TextStyle(fontSize: 24.sp, letterSpacing: 1),indicatorWeight: 0.01,indicatorColor: JadeColors.grey_2,tabs: _goodsCategoryList.asMap().entries.map((entry){int index = entry.key;GoodsCategoryBean value = entry.value;bool isSelect = _tabController!.index == index;return Column(children: [Container(margin: EdgeInsets.only(top: 40.w,bottom: 10.w),width: 90.w,height: 90.w,decoration: BoxDecoration(border: isSelect? Border.all(color: JadeColors.green_7, width: 0.8): null,borderRadius: BorderRadius.circular(5),),child: Image.asset(value.iconPath ?? PathConfig.aTuiLogo),),Text(value.name!)],);}).toList(),)),_scrollIndicator()],);}else{return SizedBox.shrink();}}