feat: 请求数据和配置
This commit is contained in:
1 parent
557f900187
commit
9b0fe51fa4
21 files changed
+1026
-60
No files matched your search
@@ -1,7 +1,13 @@
|
||||
import 'package:easy_refresh/easy_refresh.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:novyronst/common/api/video_request.dart';
|
||||
import 'package:novyronst/common/help/app_nav.dart';
|
||||
import 'package:novyronst/common/model/ny_category_model.dart';
|
||||
import 'package:novyronst/common/model/ny_drama_model.dart';
|
||||
import 'package:novyronst/common/model/ny_home_model.dart';
|
||||
import 'package:novyronst/pages/first/pages/search_page.dart';
|
||||
import 'package:novyronst/pages/first/widgets/home_first_view.dart';
|
||||
import 'package:novyronst/pages/first/widgets/home_rank_widget.dart';
|
||||
import 'package:novyronst/pages/first/widgets/home_remaining_sections.dart';
|
||||
import 'package:novyronst/pages/first/widgets/search_view.dart';
|
||||
import 'package:novyronst/root/lib_export.dart';
|
||||
@@ -18,6 +24,41 @@ class FirstPage extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _RootPageState extends State<FirstPage> {
|
||||
|
||||
List<NyCategoryModel> _categories = [];
|
||||
List<NyHomeModel> _homeDatas = [];
|
||||
final EasyRefreshController _refreshController = EasyRefreshController(
|
||||
controlFinishRefresh: true,
|
||||
);
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
_getCategoryData();
|
||||
_getAllData();
|
||||
}
|
||||
|
||||
void _getAllData() {
|
||||
VideoRequest.getHomeData().then((value) {
|
||||
setState(() {
|
||||
_homeDatas = value;
|
||||
});
|
||||
|
||||
for (NyHomeModel element in value) {
|
||||
print('ele len===: ${element.moduleKey} : ${element.dataList.length}');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void _getCategoryData() {
|
||||
VideoRequest.getCategoriesList().then((value) {
|
||||
setState(() {
|
||||
_categories = value;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppBgPage(
|
||||
@@ -34,11 +75,17 @@ class _RootPageState extends State<FirstPage> {
|
||||
slivers: [
|
||||
SliverToBoxAdapter(child: HomeFirstView()),
|
||||
SliverPadding(
|
||||
padding: const EdgeInsets.only(left: 16, right: 10, top: 16),
|
||||
padding: const EdgeInsets.only(left: 16, right: 10, top: 16, bottom: 8),
|
||||
sliver: SliverToBoxAdapter(
|
||||
child: HelpImage.asset(ConstImage.homeRank),
|
||||
)
|
||||
),
|
||||
SliverPadding(
|
||||
padding: const EdgeInsetsGeometry.symmetric(horizontal: 16),
|
||||
sliver: SliverToBoxAdapter(
|
||||
child: HomeRankWidget(),
|
||||
),
|
||||
),
|
||||
const SliverToBoxAdapter(child: HomeRemainingSections()),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -84,7 +84,7 @@ class _HomeFirstViewState extends State<HomeFirstView> {
|
||||
);
|
||||
}
|
||||
|
||||
_buildVideoItem() {
|
||||
Widget _buildVideoItem() {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: Column(
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:novyronst/common/const/const_string.dart';
|
||||
import 'package:novyronst/tools/widgets/novy_com_widget.dart';
|
||||
|
||||
import '../../../tools/util/app_screen.dart';
|
||||
import '../../../tools/widgets/novy_button_bg.dart';
|
||||
import '../../widgets/cut_corner_clipper.dart';
|
||||
import '../../widgets/ny_tag_widget.dart';
|
||||
|
||||
class HomeRankWidget extends StatelessWidget {
|
||||
|
||||
const HomeRankWidget({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return CutCornerClipper(
|
||||
width: AppScreen.screenWidth - 32,
|
||||
cutCorner: CutCorner.bottomLeft,
|
||||
cutSize: 40,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: Column(
|
||||
children: [
|
||||
_buildRankList(),
|
||||
const SizedBox(height: 5),
|
||||
Row(
|
||||
children: [
|
||||
SizedBox(width: 20.w),
|
||||
NovyButtonBg(text: 'Keep Watching', width: 308.w,)
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Row _buildRankList() {
|
||||
return Row(
|
||||
children: [
|
||||
_firstVideoView(),
|
||||
const SizedBox(width: 8),
|
||||
_otherVideoView(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _firstVideoView() {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
width: 160.w, height: 240.w,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.red,
|
||||
)
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
NovyText('Star of the ocean', fontSize: 15,
|
||||
color: Colors.black,
|
||||
fontFamily: ConstFont.montMedium,
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
NyTagWidget(text: 'Safiray'),
|
||||
const SizedBox(height: 8),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _otherVideoView() {
|
||||
return Column(
|
||||
children: List.generate(3, (index) {
|
||||
return Container(
|
||||
margin: const EdgeInsets.only(bottom: 8),
|
||||
width: 160.w, height: 93.w,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.grey,
|
||||
)
|
||||
);
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user