This commit is contained in:
zhutao
2025-11-21 18:21:47 +08:00
parent 9c94ee31fd
commit 5784a0a5d4
32 changed files with 734 additions and 441 deletions

View File

@@ -1,24 +1,50 @@
import 'package:app/pages/student/room/viewmodel/stu_room_vm.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class StudentVideoList extends StatefulWidget {
class StudentVideoList extends StatelessWidget {
const StudentVideoList({super.key});
@override
State<StudentVideoList> createState() => _StudentVideoListState();
}
class _StudentVideoListState extends State<StudentVideoList> {
@override
Widget build(BuildContext context) {
final vm = context.watch<StuRoomVM>();
return SafeArea(
child: Container(
width: 250,
padding: EdgeInsets.only(bottom: 30),
child: ListView.separated(
padding: EdgeInsets.all(10),
itemCount: 8,
itemCount: vm.otherStuList.length,
itemBuilder: (context, index) {
return VideoItem();
final item = vm.otherStuList[index];
return Stack(
children: [
AspectRatio(
aspectRatio: 1.5 / 1,
child: Container(
decoration: BoxDecoration(
color: Color(0xff373c3e),
borderRadius: BorderRadius.circular(10),
),
),
),
Positioned(
bottom: 5,
left: 5,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 7, vertical: 3),
decoration: BoxDecoration(
color: Colors.black26,
borderRadius: BorderRadius.circular(5),
),
child: Text(
item.userName,
style: TextStyle(fontSize: 12, color: Colors.white),
),
),
),
],
);
},
separatorBuilder: (context, index) => SizedBox(height: 15),
),
@@ -26,39 +52,3 @@ class _StudentVideoListState extends State<StudentVideoList> {
);
}
}
class VideoItem extends StatelessWidget {
const VideoItem({super.key});
@override
Widget build(BuildContext context) {
return Stack(
children: [
AspectRatio(
aspectRatio: 1.5 / 1,
child: Container(
decoration: BoxDecoration(
color: Color(0xff373c3e),
borderRadius: BorderRadius.circular(10),
),
),
),
Positioned(
bottom: 5,
left: 5,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 7, vertical: 3),
decoration: BoxDecoration(
color: Colors.black26,
borderRadius: BorderRadius.circular(5),
),
child: Text(
"小红",
style: TextStyle(fontSize: 12, color: Colors.white),
),
),
),
],
);
}
}