import 'package:app/pages/student/room/viewmodel/stu_room_vm.dart'; import 'package:app/widgets/room/file_drawer.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:remixicon/remixicon.dart'; class BottomBar extends StatefulWidget { const BottomBar({super.key}); @override State createState() => _BottomBarState(); } class _BottomBarState extends State { ///显示文件 void _handShowFile() { showFileDialog(context); } @override Widget build(BuildContext context) { return Container( decoration: BoxDecoration( color: Color(0xff232426), ), height: 70, child: Consumer( builder: (context,vm,_) { //摄像头开关 return Row( children: [ BarItem( title: "摄像头", icon: vm.cameraOpen ? RemixIcons.video_on_fill : RemixIcons.video_off_fill, isOff: !vm.cameraOpen, onTap: vm.changeCameraSwitch, ), BarItem( title: "麦克风", icon: vm.micOpen ? RemixIcons.mic_fill : RemixIcons.mic_off_fill, isOff: !vm.micOpen, onTap: vm.changeMicSwitch, ), BarItem( title: "声音", icon: vm.speakerOpen ? RemixIcons.volume_up_fill : RemixIcons.volume_mute_fill, isOff: !vm.speakerOpen, onTap: vm.changeSpeakerSwitch, ), BarItem( title: "举手", icon: RemixIcons.hand, ), BarItem( title: "拍照", icon: RemixIcons.upload_2_fill, onTap: _handShowFile, ), ], ); } ), ); } } class BarItem extends StatelessWidget { final String title; final IconData icon; final bool isOff; final void Function()? onTap; const BarItem({ super.key, required this.title, required this.icon, this.isOff = false, this.onTap, }); @override Widget build(BuildContext context) { return Expanded( child: InkWell( onTap: onTap, child: Container( color: isOff ? Colors.red : null, child: Column( spacing: 3, mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(icon, color: Colors.white), Text( title, style: TextStyle(color: Colors.white70, fontSize: 12), ), ], ), ), ), ); } }