小编Leo*_* Nx的帖子

Flutter 中的变换手势检测器(带堆栈)

在我的代码中,我使用手势检测器在用户拖动时拉出我的菜单。但是当我拉起菜单时,GestureDetector 的hitbox 不会改变,所以当我想把它放回原处时,它只会在初始的hitbox 上注册拖动,而不是新的(我将小部件转换为)

我希望你能理解这一点^^

这是代码:

Stack(children: [
  Column(
    children: <Widget>[
      Expanded(
          child: TabBarView(children: <Widget>[
        CostumCard(
          imgUrl: url,
        ),
        CostumCard(
          imgUrl: url,
        ),
      ]))
    ],
  ),
  IgnorePointer(
    child: Opacity(
      opacity: opacity,
      child: Container(color: Colors.black),
    ),
  ),
  Transform(
    transformHitTests: true,
    transform: Matrix4.translationValues(
        0.0, MediaQuery.of(context).size.height - 80 - 70, 0.0),
    child: Transform(
      transformHitTests: true,
      transform: Matrix4.translationValues(0.0, yTransform, 0.0),
      child: GestureDetector(
        onVerticalDragStart: (DragStartDetails details) {
          dragStartY = details.globalPosition.dy;
          dragUpdateY = dragStartY;
        },
        onVerticalDragUpdate: (DragUpdateDetails details) {
          dragDifference =
              dragUpdateY - details.globalPosition.dy;
          yTransform -= …
Run Code Online (Sandbox Code Playgroud)

dart flutter

9
推荐指数
1
解决办法
2505
查看次数

在Flutter的文本字段中垂直居中放置文本

我正在创建一个登录屏幕,其中包含用户名和密码字段,但文本似乎总是离顶部有点远(请参见图片)。

发行图片

外观(使用Photoshop)

我怎样才能解决这个问题?

这是TextFormField的代码:

new Padding(
                    padding: const EdgeInsets.symmetric(vertical: 8.0),
                    child: new TextFormField(
                      maxLines: 1,
                      controller: controller,
                      validator: (value) {
                        if (value.isEmpty) {
                          return 'Please enter username.';
                        }
                      },
                      decoration: new InputDecoration(
                          labelText: 'Username',
                          suffixIcon: new IconButton(
                            highlightColor: Colors.transparent,
                            icon: new Container(
                                width: 36.0, child: new Icon(Icons.clear)),
                            onPressed: () {
                              controller.clear();
                            },
                            splashColor: Colors.transparent,
                          ),
                          prefixIcon: new Icon(Icons.account_circle)),
                    ),
                  ),
Run Code Online (Sandbox Code Playgroud)

这是我的一般主题代码,如果有帮助的话^^

new ThemeData(
    fontFamily: 'Product Sans',
    brightness: Brightness.dark,
    buttonColor: Colors.green[300],
    accentColor: Colors.green[300],
    scaffoldBackgroundColor: Colors.blueGrey[900],
    canvasColor: Colors.blueGrey[900],
    textSelectionColor: new Color.fromRGBO(81, …
Run Code Online (Sandbox Code Playgroud)

dart flutter

8
推荐指数
5
解决办法
4324
查看次数

在TextInputType更改后使用控制器重置的Flutter TextField

我在我的应用程序中使用了全屏对话框,以使用户在文本字段中输入值。这些值中有些是字符串,有些是整数。因此,我想相应地更改键盘,以使不必要的键消失。这是我的实现:

import 'package:flutter/material.dart';
import 'package:meal_tracker/model/food_model.dart';

class AddFoodDialog extends StatelessWidget {
  TextEditingController nameController = TextEditingController(),
      carbsController = TextEditingController(),
      fatController = TextEditingController(),
      proteinController = TextEditingController(),
      amountController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Add Food"),
        actions: <Widget>[
          FlatButton(
            child: Text(
              "SAVE",
              style: TextStyle(color: Colors.white),
            ),
            onPressed: () {
              _handleSave(context);
            },
          )
        ],
      ),
      body: Form(
          child: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: <Widget>[
            TextFormField(
              decoration: InputDecoration(labelText: "Name"),
              controller: nameController,
            ),
            TextFormField(
              decoration: InputDecoration(labelText: "Carbs per 100g"), …
Run Code Online (Sandbox Code Playgroud)

dart flutter

6
推荐指数
3
解决办法
3499
查看次数

Flutter 分享插件不起作用

我按照https://pub.dartlang.org/packages/share中的说明操作,添加了依赖项 running flutter packages get,但我无法在 Dart 代码中导入该插件。我收到以下错误:

Target of URI doesn't exist: 'package:share/share.dart'.
Run Code Online (Sandbox Code Playgroud)

我尝试了几次,所以这既不是打字错误,也不是单一时间错误。

这是一个已知的错误?有什么解决办法吗?

否则,在 Flutter 中是否有不同的方式来共享简单的 url 和文本片段?

dart flutter

5
推荐指数
1
解决办法
3267
查看次数

颤动模糊叠加

我要创建一个对话框,而不是使它后面的小部件变暗的通常的实质方法,而是使它们模糊。所以本质上我想知道是否有一种方法不仅可以模糊图像,而且可以模糊整个应用程序(或其一部分)

dart flutter

5
推荐指数
2
解决办法
3270
查看次数

Flutter 返回首页

我制作了一个应用程序,其中包含相当多的路由,一个接一个地推送多个全屏对话框。但是从一个对话框中我想关闭所有并返回主页。我怎样才能做到这一点?

我不想再次推送主页,因为那样我的导航历史记录中仍然存在所有这些对话框。是pushReplacement正确的方法吗?似乎不是因为它只删除导航历史记录中的最后一个条目,所以如果我按回,我会进入倒数第二个对话框......

dart flutter

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

有没有办法重建整个应用程序,包括 flutter 项目中的 const 小部件?

在我的 Flutter 项目中,为了提高性能,我创建了许多const小部件,这些小部件在其父小部件重建时不会重建。

但是,在用户更改应用程序的语言后,我需要重建整个应用程序以应用文本更改。

有没有办法强制应用程序完全重建?谢谢,任何建议将不胜感激。

rebuild constants widget flutter

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

Flutter Log获取后台并发复制GC释放消息

在我的Flutter日志中,即时通讯不断收到此消息(只是带有一些不同的数字):

Background concurrent copying GC freed 153040(3MB) AllocSpace objects, 12(4MB) LOS objects, 49% free, 4MB/8MB, paused 819us total 173.633ms
Run Code Online (Sandbox Code Playgroud)

我最近实现了bloc模式,我对流不那么熟悉,也许我在这里做错了什么……

我有大约5000行代码,所以我无法将其全部发布在这里,只是想知道您是否知道此问题,也许这是一个常见错误

编辑:哦,是的,顺便说一句,我正在Android Emulator,Android Pie上进行测试。我的平台是Windows。

dart flutter

1
推荐指数
4
解决办法
2786
查看次数

Future 返回 null 与 Flutter 中的 FutureBuilder 结合使用

我想使用 FutureBuilder 来检查 url 是否为 png 图像,然后构建一个或两个图像(在列表中)。但不知怎的,当我打印它时,Future 总是返回 null...

结果是应用程序总是使用两个 CachedNetworkImage 构建列表视图,这不是我想要的。如果 URL 是图像,它应该只使用该 url 构建一个 CachedNetworkImage,如果不是,它应该更改 url 并构建一个包含 2 个图像的列表视图。

child: new FutureBuilder(
                future: _getImages(widget.imgUrl),
                builder: (BuildContext context, AsyncSnapshot snapshot) {
                  switch (snapshot.connectionState) {
                    case ConnectionState.none:
                      return new Text('Press button to start');
                    case ConnectionState.waiting:
                      return new Text('Awaiting result...');
                    default:
                      if (snapshot.hasError)
                        return new Text('Error: ${snapshot.error}');
                      else {
                        print(snapshot.data);
                        if (snapshot.data == "image/png") {
                          return new SingleChildScrollView(
                            child: new CachedNetworkImage(
                              imageUrl: widget.imgUrl,
                              placeholder: new Center(
                                  child: new AdaptiveProgressIndicator()),
                            ),
                          ); …
Run Code Online (Sandbox Code Playgroud)

dart flutter

0
推荐指数
1
解决办法
5970
查看次数

标签 统计

flutter ×9

dart ×8

constants ×1

rebuild ×1

widget ×1