标签: flutter-getx

Flutter 和 Getx:如何将参数从 UI 传递到 Getx 控制器?

我有这个 Getx 控制器用于从数据库读取帖子的内容:

class ReadSinglePostController extends GetxController {
  var isLoading = true.obs;
  var posts = Post(
          postID: 1,
          userID: 0,
          thumbnail: 'thumbnail',
          imageList: 'imageList',
          title: 'title',
          description: 'description',
          createdTime: DateTime.now())
      .obs; //yes this can be accessed

  var postid = 2.obs; //I want this value to change when I click a post in the UI

  @override
  void onInit() {
    super.onInit();
    readPost(postid);
  }

  updateID(var postID) {
    postid.value = postID;
    print('im print ${postid.value}');
  }//should update postid when a post is clicked in the …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-getx

8
推荐指数
1
解决办法
2万
查看次数

Flutter getx 控制器获取当前页面上下文

我想使用上下文在 getxcontroller 方法中显示来自酷警报的自定义对话框。我创建了以下控制器

class HomePageController extends GetxController {
 
   @override
   void onInit() {
     super.onInit();
     getData();
   }

   void getData(){
    //perform http request here 
     //show cool alert 

     CoolAlert.show(
      context: context,  //here needs the build context
      type: CoolAlertType.success
      );
   }

}
Run Code Online (Sandbox Code Playgroud)

我在我的无状态小部件中使用这个控制器,例如

class HomePage extends StatelessWidget {
   HomePage({ Key? key }) : super(key: key);

   final _c = Get.find<HomePageController>();


    @override
    Widget build(BuildContext context) {
        return Container(
  
          );
    }
 }
Run Code Online (Sandbox Code Playgroud)

我如何在控制器中获取当前主页 BuildContext 以显示酷警报。

flutter flutter-getx

8
推荐指数
1
解决办法
2万
查看次数

Flutter:如何监听 GetX 上的变量变化

我想根据 PressBool 是 false 还是 true 来更改小部件的主体。

这是我写的GetxController。

    import 'package:get/state_manager.dart';
    
    class PressedState extends GetxController{
      var pressedBool = true;
      changeStatus() {
        if(pressedBool){
          pressedBool = false;            
        }
        else {
          pressedBool = true;
        }
        update();
      }

}
Run Code Online (Sandbox Code Playgroud)

这里是 GetX 更新和监听应该改变页面正文的地方:

final PressedState pressController = Get.put(PressedState());

return MaterialButton(
    onPressed: () {
      pressController.changeStatus();
    },
    child: 
      pressController.pressedBool
            ? Container(...) : Container(...)), ...
Run Code Online (Sandbox Code Playgroud)

如何让 GetX 监听 PressBool 变量?

flutter flutter-getx

7
推荐指数
4
解决办法
4万
查看次数

GetX - 如何从 Get.Dialog 返回值?

如何从打开对话框小部件/警报对话框的 Get.Dialog 获取返回值?

flutter flutter-getx

7
推荐指数
1
解决办法
2万
查看次数

如何使用 Getx 检索控制器层内的 TextEditingController?

我的视图层中有这个语句

TextEditingController controllerDestino = TextEditingController();
Run Code Online (Sandbox Code Playgroud)

我想恢复这个controllerDestino,以便在我的控制器层中的方法中使用。

 statusUberNaoChamado() {
showBoxAdress = true;

changeMainButton("Chamar", Color(0xFF1ebbd8), () {
  callUber("I need pass the controller here");
});

update();}
Run Code Online (Sandbox Code Playgroud)

预先感谢您的关注:)

dart flutter flutter-getx

7
推荐指数
1
解决办法
1万
查看次数

Flutter:构建期间调用 setState() 或 markNeedsBuild()。使用 future Builder 和 obx

我正在使用 flutter 和GetX,所以我Obx在我的代码中实现。

我有3个文件:

questionnaire.dart questionnnaire_controller.dart popup.dart

在里面popup.dart我有弹出窗口的布局。

在里面questionnaire.dart我有显示弹出窗口内容的代码,该弹出窗口显示要回答的调查问卷。

在里面questionnaire_controller.dart我有一些使用的变量和函数,比如getQuestionnaires()异步获取调查问卷数据的函数,或者 list ,或者保存已选择的调查问卷实例的questionnaires变量。selectedQuestionnaire

如果已选择调查问卷,则必须在弹出对话框的顶部popup.dart显示调查问卷的标题。部分代码如下:

static Future<void> showQuestionnaireInput({String title, Widget child, Widget icon}) async {
    bool mobileSize = Get.size.width <= ResponsiveSizingConfig.instance.breakpoints.desktop;
    if (mobileSize) {
      await Get.to(InputScreenWidget(child, title));
    } else {
      await showDialog(
          context: Get.context,
          builder: (context) {
            return AlertDialog(
              titlePadding: EdgeInsets.all(8),
              contentPadding: EdgeInsets.all(8),
              title: Container(
                decoration: BoxDecoration(border: Border(bottom: BorderSide(color: Colors.grey.shade200, width: 2))),
                child: Row(
                  mainAxisAlignment: …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-web flutter-getx

7
推荐指数
1
解决办法
1万
查看次数

如何使用 Getx 在 Flutter 中呈现具有不同转换(推送/模态)的页面?

我有一个页面,可以根据该页面的启动位置以两种方式呈现:模态和推送。

我曾经toNamed展示这些页面,但问题是我无法fullscreenDialog在调用站点传递标志。我期待这样的事情:

Get.toNamed('pageName', fullscreenDialog: false);
Run Code Online (Sandbox Code Playgroud)

那么,这种工作我需要两条路线和两个页面吗?像这样的东西:

GetPage(
  name: 'pageNameDialog',
  page: () => QuestionPage(),
  fullscreenDialog: true,
  binding: QuestionBinding(),
),

GetPage(
  name: 'pageNamePush',
  page: () => QuestionPage(),
  fullscreenDialog: false,
  binding: QuestionBinding(),
),
Run Code Online (Sandbox Code Playgroud)

我认为这应该是一个更好的方法,但我对 Flutter 和 getx 真的很陌生,不知道我应该搜索什么。有人有解决方案吗?否则,我可能不得不加倍我的路线和页面,这是相当多余的。

flutter flutter-getx

7
推荐指数
2
解决办法
1万
查看次数

如何在 flutter 中使用 getx 使列表可观察

我正在观看有关使用 Getx 和 API 的教程。设置用于获取数据的控制器后。我们声明了一个列表变量并使其可观察(obs)。但列表格式已被弃用。你能帮我吗我现在该怎么做。

var products = List<Product>().obs;
Run Code Online (Sandbox Code Playgroud)

list dart flutter flutter-getx

7
推荐指数
2
解决办法
2万
查看次数

Flutter:类型“bool”不是类型转换中“RxBool”类型的子类型

我在 Flutter 中使用GetX包进行状态管理。我试图根据条件是否成立来显示数据。但出现此错误,提示“类型‘bool’不是类型转换中类型‘RxBool’的子类型”。

下面是我试图展示的代码。感谢帮助。:)

主屏幕

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:github_users/Controllers/status_controller.dart';
import 'package:github_users/Views/show_data.dart';

class HomeScreen extends StatelessWidget {
  final statusController = Get.put(StatusController());
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: appBar(),
      body: Container(
        width: double.maxFinite,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            successButton(context),
            SizedBox(height: 20),
            faliureButton(context),
          ],
        ),
      ),
    );
  }

//##############################################
//**************  Widget Chunks ***************/

//***************  Appbar ************/
 PreferredSizeWidget appBar() {
    return AppBar(
      backwardsCompatibility: true,
      brightness: Brightness.dark,
      title: Text(
        'Github Users',
      ),
    );
  }

//***************  Success …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-dependencies flutter-layout flutter-getx

7
推荐指数
2
解决办法
1万
查看次数

构建期间调用 flutter VisitChildElements()

我正在尝试创建一个下载功能,将文件从 url 下载到手机存储中,并且我制作了一个小部件来显示下载是否开始,以及使用getx obs显示进度计数器

\n
final ApiServiceController uController = Get.put(ApiServiceController());\n\ndownloading(String fileUrl, String fileName) async {\n    Dio dio = Dio();\n    fToast("Downloading... $fileName", pop);\n\n    try {\n      var dir = await downloadDirectory();\n      uController.isDwd.value = true;\n\n      await dio.download(fileUrl, "${dir.path}/$fileName",\n          onReceiveProgress: (rec, total) {\n        print("Rec: $rec , Total: $total");\n\n        uController.dwdP.value = ((rec / total) * 100).toStringAsFixed(0) + "%";\n      });\n      fToast("Downloaded", pop);\n    } catch (e) {\n      print(e);\n    }\n    uController.isDwd.value = false;\n\n    print("Download completed");\n  }\n
Run Code Online (Sandbox Code Playgroud)\n

要显示的小部件

\n
Stack(children: [\n///.. Container widget here,\nObx(() {\n    return uController.isDwd.value\n …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-getx

7
推荐指数
1
解决办法
9807
查看次数