上一级 的 UI
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:get/get.dart';
import 'package:get/get_state_manager/get_state_manager.dart';
import 'package:get/instance_manager.dart';
import 'package:statedemo/pages/home/controller.dart';
import 'package:statedemo/pages/list/index.dart';
class HomePage extends StatefulWidget {
const HomePage({super.key, required this.title});
final String title;
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
backgroundColor: Colors.yellow,
),
body: GetBuilder(
builder: (controller) {
return _getStatusWidget(controller);
},
init: HomePageController(),
),
);
}
Widget _getStatusWidget(HomePageController controller) {
return Container(
child: GestureDetector(
onTap: () {
controller.oncount();
print('hahahah');
_pushListPage();
},
child: Obx(
// (() => Text(controller.num.toString())),
(() => Text("GetX响应:${controller.num.toString()}")),
),
),
);
}
void _pushListPage() async {
print('准备跳转');
dynamic result = await Get.to(() => ListPage(), arguments: "这个是上一个界面的参数");
if (result is String) {
print("这是返回的值$result");
}
}
}
上一级业务
import 'package:get/get.dart';
import 'package:get/get_state_manager/get_state_manager.dart';
class HomePageController extends GetxController {
final RxInt _num = 0.obs;
int get num => _num.value;
@override
void onInit() {
super.onInit();
}
}
extension countClick on HomePageController {
void oncount() async {
_num.value++;
}
}
下一级参数处理
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:get/get.dart';
import 'package:get/instance_manager.dart';
class ListPage extends StatefulWidget {
const ListPage({super.key});
@override
State<ListPage> createState() => _ListPageState();
}
class _ListPageState extends State<ListPage> {
final TextEditingController _controller = TextEditingController();
@override
void initState() {
super.initState();
dynamic res = Get.arguments;
if (res is String) {
_controller.text = res;
print("拿到了上一个页面的参数是:${res}");
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Column(
children: [
Text(Get.arguments),
TextField(
controller: _controller,
onChanged: (value) {},
),
GestureDetector(
onTap: () => _onPop(),
child: Text("返回"),
)
],
),
),
);
}
void _onPop() async {
Get.back(result: "这是返回的参数");
}
}
网友评论