import 'package:flutter/material.dart'; import 'player_panel_shell.dart'; class PlayerDrawerPanel extends StatelessWidget { final String title; final VoidCallback onBack; final Widget child; const PlayerDrawerPanel({ super.key, required this.title, required this.onBack, required this.child, }); @override Widget build(BuildContext context) { return Material( color: Colors.transparent, child: Column( mainAxisSize: MainAxisSize.min, children: [ _header(), panelDivider(), Flexible( child: SingleChildScrollView( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), child: child, ), ), ], ), ); } Widget _header() { return Padding( padding: const EdgeInsets.fromLTRB(4, 4, 12, 4), child: Row( children: [ IconButton( icon: const Icon( Icons.arrow_back_ios_new, color: Colors.white70, size: 15, ), onPressed: onBack, padding: EdgeInsets.zero, constraints: const BoxConstraints(minWidth: 36, minHeight: 36), tooltip: '返回', ), Text( title, style: const TextStyle( color: Colors.white, fontSize: 15, fontWeight: FontWeight.w600, ), ), ], ), ); } }