小编Rém*_*let的帖子

Flutter:SimpleDialog中的ListView

我想在我的Flutter应用程序中使用以下代码显示带有ListView.builder的SimpleDialog:

showDialog(
  context: context,
  builder: (BuildContext context) {
    return new SimpleDialog(
      children: <Widget>[
        new FittedBox(
          child: new ListView(
            children: <Widget>[
              new Text("one"),
              new Text("two"),
            ],
          ),
        )
      ],
    );
  },
);
Run Code Online (Sandbox Code Playgroud)

这给出了这个错误(抱歉,我无法将日志包装为代码,因为Stackoverflow抱怨代码太多了):

══╡通过渲染图书馆的例外情况╞═​​══════════════════════════════════════════════════════════════════════════════════════════════ =/flutter(4481):在performLayout()期间抛出以下断言:I/flutter(4481):RenderViewport不支持返回内部维度.I/flutter(4481):计算内在维度需要实例化视口的每个子节点,我/ flutter(4481):击败视口的懒惰点.I/flutter(4481):如果你只是想在主轴方向上收缩包装视口,可以考虑一个I/flutter(4481):RenderShrinkWrappingViewport渲染对象(ShrinkWrappingViewport小部件),它实现了I/flutter(4481) :没有实现内在维度API的效果.I/flutter(4481):...我/ flutter(4481):抛出了另一个异常:RenderBox没有布局:RenderPhysicalShape#83d92 relayoutBoundary = up2 NEEDS-PAINT I/flutter(4481):抛出另一个异常:' package:flutter/src/rendering/shifted_box.dart':断言失败:第310行pos 12:'child.hasSize':不是真的.I/flutter(4481):抛出了另一个异常:RenderBox没有布局:RenderPhysicalShape#83d92 relayoutBoundary = up2

我尝试使用具有特定高度和宽度的Container,它可以工作,但我希望ListView能够适应Dialog.

如何在SimpleDialog中包含ListView?

listview flutter

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

如何从另一个小部件设置状态?

我正在尝试从Flutter中的不同小部件更改状态.例如,在以下示例中,我在几秒钟后设置状态.

这是代码:

class _MyAppState extends State<MyApp> {

  int number = 1;

  @override
  void initState() {
    super.initState();
    new Future.delayed(new Duration(seconds: 5)).then((_) {
      this.setState(() => number = 2);
      print("Changed");
    });
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new Center(
        child: new FlatButton(
          color: Colors.blue,
          child: new Text("Next Page"),
          onPressed: () {
            Navigator.of(context).push(new MaterialPageRoute(
              builder: (BuildContext context) => new StatefulBuilder(builder: (BuildContext context, setState) =>new MySecondPage(number))
            ));
          },
        ),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用一个InheritedWidget,但除非我将它包装在我的顶级窗口小部件周围,否则这将无法工作,这对我正在尝试做的事情是不可行的(上面的代码是我想要实现的简化).

有关实现这一目标的最佳方法的任何想法都在Flutter中?

dart flutter

16
推荐指数
2
解决办法
8298
查看次数

如何在另一个代码生成器的顶部运行代码生成器?

使用source_gen堆栈制作代码生成器,如何制作生成代码的生成器,该代码将作为另一个生成器的输入(更具体地说json_serializable)?

例如,考虑:

class Example extends Generator {
  @override
  String generate(LibraryReader library, BuildStep buildStep) {
    return '''
@JsonSerializable(nullable: false)
class Person {
  final String firstName;
  final String lastName;
  final DateTime dateOfBirth;
  Person({this.firstName, this.lastName, this.dateOfBirth});
  factory Person.fromJson(Map<String, dynamic> json) => _PersonFromJson(json);
  Map<String, dynamic> toJson() => _PersonToJson(this);
}
''';
  }
}
Run Code Online (Sandbox Code Playgroud)

这是一个代码生成器的例子,它输出代码然后需要发送到 json_serializable

我该怎么做才能json_serializable在此处正确生成?

dart flutter

16
推荐指数
2
解决办法
1392
查看次数

为桌面构建扑腾应用程序

我看到一些人设法为其他操作系统构建比通常的Android/IOS更好的应用程序

我的问题很简单:如何?为mac/windows构建flutter应用程序的当前流程是什么?它没有必要准备好生产.实验就足够了

dart flutter

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

如何有条件地将小部件添加到列表?

在颤动中,诸如Row/ ListView/之类的小部件Stack不能处理空子级。因此,如果我们要有条件地将小部件添加为子级,则通常需要执行以下操作:

Row(
  children: <Widget>[
    foo == 42 ? Text("foo") : Container(),
  ],
);
Run Code Online (Sandbox Code Playgroud)

但是,添加一个空容器感觉很奇怪。

另一个解决方案是where过滤器:

Row(
  children: <Widget>[
    foo == 42 ? Text("foo") : null,
  ].where((t) => t != null).toList(),
);
Run Code Online (Sandbox Code Playgroud)

这解决了空容器的问题,但是我们仍然有一个丑陋的三元组,编写起来很累。

有更好的解决方案吗?

flutter

11
推荐指数
3
解决办法
1543
查看次数

如何在Flutter中显示动画图片?

我希望在Flutter中显示一个动画图片,无论其格式如何.事实是,目前似乎只有一种解决方案,video_loader.这仅适用于全屏,但不适合我的用例.

关于如何解决这个问题的任何想法?

dart flutter

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

如何记录 dart 函数/构造函数参数?

使用 dart 可以通过注释作为类/函数定义的前缀,以便分析器将其解释为文档:

/// Some documentation for [Foo]
class Foo {

}
Run Code Online (Sandbox Code Playgroud)

但是如何使用参数来实现相同的行为呢?

我尝试了以下方法:

void myFunction(
 /// Some parameter documentation
 String parameter,
) {

}
Run Code Online (Sandbox Code Playgroud)

但这不起作用。


但是,这似乎是可能的,因为dartanalyzer 确实包含ParameterElement文档的属性。

dart

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

如何为键盘外观上的Flutter布局设置动画

我正在开发一个Flutter应用程序,主要用于iOS。

我的一个视图有一个文本字段,当您点击它时会出现iOS键盘。问题是-布局无法像在本地iOS应用中一样平滑地更改。而是,即使在键盘打开动画完成之前,它也会立即跳到最终可用的屏幕高度。

我尝试将SafeArea元素包装在中AnimatedSizeAnimatedContainer但没有帮助。

我的布局代码:

SafeArea(child:
  Column(children:[
    TextField(...)
  ])
)
Run Code Online (Sandbox Code Playgroud)

键盘出现时如何使布局平滑调整大小?

预期:

我的期望如何。gif

实际

效果-Flutter app.gif中的调整大小

ios dart flutter

10
推荐指数
3
解决办法
791
查看次数

如何使用 PageView 显示多个页面?

我有一个使用PageView的应用程序,我想让它具有响应性——例如,在平板电脑上,它显示 3 个页面,而在智能手机上,它只显示一个:

在此处输入图片说明

如何更改 PageView 中显示的页数?

flutter flutter-layout

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

用百分比在堆栈中定位小部件

假设我想在 a 内放置一个小部件,Stack但使用堆栈位置的百分比而不是固定大小。如何在颤振中做到这一点?

我希望Positionned.fromRelativeRect构造函数就是这样,使用介于 0 和 1 之间的浮点数。但似乎没有。

Align允许以百分比定位小部件。但是heightFactorwidthFactor更改Align大小而不是子大小。这不是我想要的。

dart flutter

9
推荐指数
3
解决办法
5110
查看次数

标签 统计

flutter ×9

dart ×7

flutter-layout ×1

ios ×1

listview ×1