mirror of
https://github.com/flutter/samples.git
synced 2025-11-08 13:58:47 +00:00
Flutter 3.29 beta (#2571)
This commit is contained in:
@@ -20,8 +20,9 @@ class MyApp extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
final ValueNotifier<DemoScreen> _screen =
|
||||
ValueNotifier<DemoScreen>(DemoScreen.counter);
|
||||
final ValueNotifier<DemoScreen> _screen = ValueNotifier<DemoScreen>(
|
||||
DemoScreen.counter,
|
||||
);
|
||||
final ValueNotifier<int> _counter = ValueNotifier<int>(0);
|
||||
final ValueNotifier<String> _text = ValueNotifier<String>('');
|
||||
|
||||
@@ -60,8 +61,8 @@ class _MyAppState extends State<MyApp> {
|
||||
}
|
||||
|
||||
Widget demoScreenRouter(DemoScreen which) => switch (which) {
|
||||
DemoScreen.counter => CounterDemo(counter: _counter),
|
||||
DemoScreen.text => TextFieldDemo(text: _text),
|
||||
DemoScreen.dash => DashDemo(text: _text)
|
||||
};
|
||||
DemoScreen.counter => CounterDemo(counter: _counter),
|
||||
DemoScreen.text => TextFieldDemo(text: _text),
|
||||
DemoScreen.dash => DashDemo(text: _text),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CounterDemo extends StatefulWidget {
|
||||
const CounterDemo({
|
||||
super.key,
|
||||
required this.counter,
|
||||
});
|
||||
const CounterDemo({super.key, required this.counter});
|
||||
|
||||
final ValueNotifier<int> counter;
|
||||
|
||||
@@ -24,15 +21,14 @@ class _CounterDemoState extends State<CounterDemo> {
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
const Text(
|
||||
'You have pushed the button this many times:',
|
||||
),
|
||||
const Text('You have pushed the button this many times:'),
|
||||
ValueListenableBuilder(
|
||||
valueListenable: widget.counter,
|
||||
builder: (context, value, child) => Text(
|
||||
'$value',
|
||||
style: Theme.of(context).textTheme.headlineMedium,
|
||||
),
|
||||
builder:
|
||||
(context, value, child) => Text(
|
||||
'$value',
|
||||
style: Theme.of(context).textTheme.headlineMedium,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -21,9 +21,12 @@ class _DashDemoState extends State<DashDemo> {
|
||||
super.initState();
|
||||
// Initial value of the text box.
|
||||
_totalCharCount = widget.text.value.length;
|
||||
textController = TextEditingController.fromValue(TextEditingValue(
|
||||
textController = TextEditingController.fromValue(
|
||||
TextEditingValue(
|
||||
text: widget.text.value,
|
||||
selection: TextSelection.collapsed(offset: widget.text.value.length)));
|
||||
selection: TextSelection.collapsed(offset: widget.text.value.length),
|
||||
),
|
||||
);
|
||||
// Report changes.
|
||||
textController.addListener(_onTextControllerChange);
|
||||
// Listen to changes from the outside.
|
||||
@@ -73,10 +76,9 @@ class _DashDemoState extends State<DashDemo> {
|
||||
children: [
|
||||
Text(
|
||||
'COUNT WITH DASH!',
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.titleLarge!
|
||||
.copyWith(color: Colors.white),
|
||||
style: Theme.of(
|
||||
context,
|
||||
).textTheme.titleLarge!.copyWith(color: Colors.white),
|
||||
),
|
||||
// Bordered dash avatar
|
||||
Padding(
|
||||
@@ -101,10 +103,9 @@ class _DashDemoState extends State<DashDemo> {
|
||||
),
|
||||
Text(
|
||||
'$_totalCharCount',
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.displayLarge!
|
||||
.copyWith(color: Colors.white),
|
||||
style: Theme.of(
|
||||
context,
|
||||
).textTheme.displayLarge!.copyWith(color: Colors.white),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -15,9 +15,12 @@ class _TextFieldDemoState extends State<TextFieldDemo> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
// Initial value of the text box.
|
||||
textController = TextEditingController.fromValue(TextEditingValue(
|
||||
textController = TextEditingController.fromValue(
|
||||
TextEditingValue(
|
||||
text: widget.text.value,
|
||||
selection: TextSelection.collapsed(offset: widget.text.value.length)));
|
||||
selection: TextSelection.collapsed(offset: widget.text.value.length),
|
||||
),
|
||||
);
|
||||
// Report changes.
|
||||
textController.addListener(_onTextControllerChange);
|
||||
// Listen to changes from the outside.
|
||||
|
||||
@@ -25,9 +25,9 @@ class DemoAppStateManager {
|
||||
required ValueNotifier<DemoScreen> screen,
|
||||
required ValueNotifier<int> counter,
|
||||
required ValueNotifier<String> text,
|
||||
}) : _counter = counter,
|
||||
_text = text,
|
||||
_screen = screen;
|
||||
}) : _counter = counter,
|
||||
_text = text,
|
||||
_screen = screen;
|
||||
|
||||
final ValueNotifier<DemoScreen> _screen;
|
||||
final ValueNotifier<int> _counter;
|
||||
|
||||
@@ -4,7 +4,7 @@ publish_to: none
|
||||
version: 1.0.0
|
||||
|
||||
environment:
|
||||
sdk: ^3.5.0
|
||||
sdk: ^3.7.0-0
|
||||
flutter: ">=3.22.0"
|
||||
|
||||
dependencies:
|
||||
|
||||
Reference in New Issue
Block a user