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.

69 lines
1.8 KiB

3 years ago
import 'package:flutter/material.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/retrofit/data/article.dart';
import 'package:huixiang/view_widget/hot_item.dart';
import 'package:huixiang/view_widget/item_title.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class HotArticle extends StatefulWidget {
final List<Article> articles;
HotArticle(this.articles);
@override
State<StatefulWidget> createState() {
return _HotArticle();
}
}
class _HotArticle extends State<HotArticle> {
@override
Widget build(BuildContext context) {
return Column(
children: [
ItemTitle(
text: S.of(context).huixiangtoutiao,
imgPath: "assets/image/icon_today_video.png",
moreText: S.of(context).chakangengduo,
onTap: () {
Navigator.of(context)
.pushNamed('/router/hot_article_page');
},
),
hotList(),
],
);
}
Widget hotList() {
return Container(
child: ListView.builder(
shrinkWrap: true,
itemCount: widget.articles != null
? ((widget.articles.length > 3) ? 3 : widget.articles.length)
: 0,
3 years ago
physics: NeverScrollableScrollPhysics(),
3 years ago
scrollDirection: Axis.vertical,
padding: EdgeInsets.symmetric(vertical: 12.h),
itemBuilder: (context, position) {
return AspectRatio(
aspectRatio: position == 0 ? 1.38 : 3.56,
child: Container(
height: position == 0 ? 247.h : 96.h,
margin: EdgeInsets.symmetric(vertical: 6.h, horizontal: 16.w),
child: HotArticleItem(
article: widget.articles[position], isHot: position == 0),
),
);
},
),
);
}
}