例子1
class CounterPage extends StatelessWidget {
var count = 0.obs;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("Counter")),
body: Center(
child: Obx(() {
return Text("${count.value}", style: const TextStyle(fontSize: 50),);
}),
),
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.add),
onPressed: (){
count += 1;
},
),
);
}
}
例子2
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'counter_controller.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetMaterialApp(
home: CounterPage(num: 0),
);
}
}
class CounterPage extends StatelessWidget {
final int num ;
final CounterController controller =
Get.put(CounterController());
CounterPage({super.key, required this.num});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('GetX Counter Example $num'),
actions: [
IconButton(
onPressed: () {
Navigator.of(context)
.push(MaterialPageRoute(builder: (BuildContext context) {
return CounterPage(num: num+1,);
}));
},
icon: const Icon(Icons.add_reaction_rounded)),
],
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() => Text('Count: ${controller.count}',
style: TextStyle(fontSize: 24.0))),
SizedBox(height: 20.0),
ElevatedButton(
onPressed: () => controller.increment(),
child: Text('Increment'),
),
ElevatedButton(
onPressed: () => controller.decrement(),
child: Text('Decrement'),
)
],
),
),
);
}
}
import 'package:get/get.dart';
class CounterController extends GetxController {
var count = 0.obs ;
void increment() {
count++;
}
void decrement() {
count--;
}
}