-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Description
Steps to reproduce
- Turn off the Switch in the sample app
Expected results
Brightness is turned to dark and no exception happens
Actual results
Brightness is turned to dark and an assert exception happens
Code sample
Code sample
import 'package:flutter/material.dart';
/// Flutter code sample for [CarouselView].
void main() => runApp(const CarouselExampleApp());
class CarouselExampleApp extends StatefulWidget {
const CarouselExampleApp({super.key});
@override
State<CarouselExampleApp> createState() => _CarouselExampleAppState();
}
class _CarouselExampleAppState extends State<CarouselExampleApp> {
bool isLight = true;
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
brightness: isLight ? Brightness.light : Brightness.dark,
),
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
leading: const Icon(Icons.cast),
title: const Text('Flutter TV'),
actions: <Widget>[
Center(
child: Switch(
value: isLight,
onChanged: (bool value) {
setState(() {
isLight = value;
});
},
),
),
const Padding(
padding: EdgeInsetsDirectional.only(end: 16.0),
child: CircleAvatar(child: Icon(Icons.account_circle)),
),
],
),
body: const CarouselExample(),
),
);
}
}
class CarouselExample extends StatefulWidget {
const CarouselExample({super.key});
@override
State<CarouselExample> createState() => _CarouselExampleState();
}
class _CarouselExampleState extends State<CarouselExample> {
final CarouselController controller = CarouselController(initialItem: 1);
@override
void dispose() {
controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
final double height = MediaQuery.sizeOf(context).height;
return ConstrainedBox(
constraints: const BoxConstraints(maxHeight: 200),
child: CarouselView(
controller: CarouselController(initialItem: 5),
itemSnapping: true,
itemExtent: 330,
shrinkExtent: 200,
children: List<Widget>.generate(20, (int index){
return UncontainedLayoutCard(index: index, label: 'Show $index');
}),
),
);
}
}
class UncontainedLayoutCard extends StatelessWidget {
const UncontainedLayoutCard({
super.key,
required this.index,
required this.label,
});
final int index;
final String label;
@override
Widget build(BuildContext context) {
return ColoredBox(
color: Colors.primaries[index % Colors.primaries.length].withOpacity(0.5),
child: Center(
child: Text(
label,
style: const TextStyle(color: Colors.white, fontSize: 20),
overflow: TextOverflow.clip,
softWrap: false,
),
),
);
}
}Screenshots or Video
Screenshots / Video demonstration
Screen.Recording.2024-08-02.at.5.41.13.PM.mov
Metadata
Metadata
Assignees
Labels
No labels