Files
pte/untitled/lib/views/Me/Video/Video.dart
2024-09-27 01:31:25 +08:00

101 lines
2.5 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:flutter/material.dart';
import 'package:peach/entity/_.dart';
import 'package:peach/views/Me/Video/player.dart';
import 'package:peach/config/_.dart';
import 'package:peach/entity/_.dart';
import 'package:peach/utils/_.dart';
import 'package:peach/service/_.dart';
import 'package:peach/widget/_.dart';
class Video extends StatefulWidget {
@override
State<StatefulWidget> createState() => _Video();
}
// 短视频模块
class _Video extends State<Video> with AutomaticKeepAliveClientMixin<Video> {
PageController pageController;
String pcursor = "";
@override
void initState() {
super.initState();
pageController = PageController(
initialPage: Config.currentIndex, //默认在第几个
viewportFraction: 1, // 占屏幕多少1为占满整个屏幕
keepPage: true
);
GetAllVideoList();
}
/// 获取视频列表数据
Future<VideoListEntity> GetAllVideoList({ String type = "swiper" }) async {
print("GetAllVideoList");
void getData () async {
VideoListEntity result = await VideoService.GetVideoList(params: {
"pcursor": pcursor
});
setState(() {
Config.feeds.addAll(result.feeds);
pcursor = result.pcursor;
});
print("feeds.length ${Config.feeds.length}");
}
if (type == "swiper") {
print("swiper");
if (Config.feeds.length == 0) {
getData();
}
} else {
print("more");
getData();
}
}
@override
Widget build(BuildContext context) {
super.build(context);
return Scaffold(
backgroundColor: Colors.black,
body: PageView(
controller: pageController,
scrollDirection: Axis.vertical,
physics: BouncingScrollPhysics(),
pageSnapping: true,
onPageChanged: (int index) {
setState(() {
print("你切换了页面! ============== ${index}");
setState(() {
Config.currentIndex = index;
if (Config.currentIndex >= Config.feeds.length -1) {
print("重新请企业数据.....");
GetAllVideoList(type: "more");
}
});
});
},
children: Config.feeds.map((e) {
// print("e.photo.photoUrl ============ ${e.photo.photoUrl}");
return Play(
url: e.photo.photoUrl,
);
}).toList(),
)
);
}
@override
bool get wantKeepAlive => true;
@override
void dispose() {
pageController.dispose();
}
}