小编Eri*_*del的帖子

Row内的TextField导致布局异常:无法计算大小

我得到一个渲染异常,我不明白如何修复.我正在尝试创建一个包含3行的列.

行[图片]

行[TextField]

行[按钮]

这是构建容器的代码:

Container buildEnterAppContainer(BuildContext context) {
    var container = new Container(
      padding: const EdgeInsets.all(8.0),
      child: new Column(
        mainAxisAlignment: MainAxisAlignment.start,
        children: <Widget>[
          buildImageRow(context),
          buildAppEntryRow(context),
          buildButtonRow(context)
        ],
      ),
    );
    return container;
  }
Run Code Online (Sandbox Code Playgroud)

和我的buildAppEntryRow文本容器的代码

Widget buildAppEntryRow(BuildContext context) {
    return new Row(
      children: <Widget>[
        new TextField(
          decoration: const InputDecoration(helperText: "Enter App ID"),
          style: Theme.of(context).textTheme.body1,
        )
      ],
    );
  }
Run Code Online (Sandbox Code Playgroud)

当我运行时,我得到以下异常:

I/flutter ( 7674): BoxConstraints forces an infinite width.
I/flutter ( 7674): These invalid constraints were provided to RenderStack's layout() function by the …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

如何设置定位文本块的背景颜色?

我有一个定位的Text元素,它位于Stack中的Image元素之上.我想将一个简单的背景颜色应用于该Text元素,以便它像文本框一样构成文本框架:

期望的输出

我可以通过在该堆栈中插入一个Container作为另一个定位子项来完成此操作.但是每次文本字符串更改时我都必须重新计算宽度,这是次优的.有没有更好的办法?

一个糟糕的方法

var stack = new Stack(
  children: <Widget>[
    new Image.asset ( // background photo
      "assets/texture.jpg",
      fit: ImageFit.cover,
      height: 600.0,
    ),
    new Positioned ( // headline
      child: new Container(
        decoration: new BoxDecoration (
          backgroundColor: Colors.black
        ),
      ),
      left: 0.0,
      bottom: 108.0,
      width: 490.0,
      height: 80.0,
    ),
    new Positioned (
      child: new Text (
        "Lorem ipsum dolor.",
        style: new TextStyle(
          color: Colors.blue[500],
          fontSize: 42.0,
          fontWeight: FontWeight.w900
        )
      ),
      left: 16.0,
      bottom: 128.0,
    )
  ]
);
Run Code Online (Sandbox Code Playgroud)

dart flutter

12
推荐指数
2
解决办法
9153
查看次数

使用onAuthStateChanged通过Flutter登录Firebase

在Flutter之外,当我实现firebase身份验证时,我总是使用firebase提供的onAuthStateChanged侦听器来确定用户是否已登录并相应地做出响应.

我正在尝试使用flutter做类似的事情,但我可以找到一种方法来访问Firebase的onAuthStateChanged.我正在使用firebase_auth和google_signin Flutter插件.我正在使用firebase_auth Flutter插件中包含的示例代码.下面是示例代码.我可以使用谷歌登录成功登录,但示例太简单了,因为我想让观察者/监听器检测用户的登录/退出状态.

有没有办法通过观察者/监听器使用firebase_auth/google_signin flutter插件来检测以确定用户的状态?

最终,我希望应用程序确定用户是否已登录(是/否).如果没有,则显示登录屏幕,如果是,则显示我的主应用程序页面.

import 'dart:async';
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';

final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn _googleSignIn = new GoogleSignIn();

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Firebase Auth Demo',
      home: new MyHomePage(title: 'Firebase Auth Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState(); …
Run Code Online (Sandbox Code Playgroud)

dart firebase firebase-authentication google-signin flutter

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

Flutter ListView,SliverList等内部的当前滚动偏移

如何获取Flutter ListView, SliverList等内的当前滚动偏移量?

dart flutter

10
推荐指数
2
解决办法
5378
查看次数

如何在Flutter的文本输入字段中配置自动大写行为?

我正在Windows上尝试Flutter开发。我有一个带有InputField的简单测试应用程序。我希望第一个键盘输入为大写字母,但目前看不到一种实现该功能的方法(例如,按下Shift键启动键盘)。有任何想法吗?

代码(稍微简化一下)是:

import 'package:flutter/material.dart';

void main() {
  runApp(new MaterialApp(
      theme: new ThemeData.dark(),
      home: new MainScreen()
  ));
}

class MainScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        appBar: new AppBar(
            leading: new IconButton(
                icon: new Icon(Icons.menu),
                tooltip: 'Navigation menu',
                onPressed: null,
            ),
            title: new Text('Test'),
        ),
        body: new NewTest(),
    );
  }
}

/// Widget
class NewTest extends StatefulWidget {
  @override
  _NewTestInputState createState() => new _NewTestInputState();
}
/// State
class _NewTestInputState extends State<NewTest> {
  InputValue _currentInput;

  void _handleInputChange(InputValue …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

当键盘显示时,颤音形式消失

Form用Flutter 创建了一个但是当我专注于一个字段并且键盘弹出时,内容消失了.

import 'dart:async';

import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/material.dart';
import 'package:greencat/greencat.dart';
import 'package:woody_app/Application.dart';
import 'package:woody_app/actions/AuthAction.dart';
import 'package:woody_app/states/AuthState.dart';

class ProfileScreen extends StatefulWidget {
  @override
  State createState() => new ProfileScreenState();
}


class PersonData {
  String name = '';
  String phoneNumber = '';
  String password = '';
}

class ProfileScreenState extends State<ProfileScreen> {
  final Store<AuthState, AuthAction<dynamic>> _store = Application.get().store;
  StreamSubscription<AuthState> _subscriber;

  final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();

  PersonData person = new PersonData();

  void showInSnackBar(String value) {
    _scaffoldKey.currentState.showSnackBar(new SnackBar(
        content: new …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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