小编Mar*_*rko的帖子

如何在Flutter Widget(Center Widget)的子属性中使用条件语句

到目前为止,每当我需要在Widget中使用条件语句时,我已经完成了以下操作(使用Center和Containers作为简化的虚拟示例):

new Center(
  child: condition == true ? new Container() : new Container()
)
Run Code Online (Sandbox Code Playgroud)

虽然当我尝试使用if/else语句时,它会导致死代码警告:

new Center(
  child: 
    if(condition == true){
      new Container();
    }else{
      new Container();
    }
)
Run Code Online (Sandbox Code Playgroud)

有趣的是,我尝试使用switch case语句,它给了我相同的警告,因此我无法运行代码.我做错了什么或者是不是因为有死代码而无法使用if/else或switch语句而没有颤抖?

dart flutter

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

如何查看当前路线是哪条?

我想使用抽屉导航到不同的路线,但是如果我已经在该路线上,我每次点击它时都不想打开路线的新实例,而是我希望在这种情况下新的路线是没开.到目前为止这是我的代码:

Widget build(BuildContext context){
    return new Drawer(
      child:
          new ListView(
            children: <Widget>[
              new ListTile(
                title: new Text("NewRoute"),
                onTap: () {
                    Navigator.of(context).pop;
                    Navigator.of(context).pushNamed('/NewRoute');
                }
              )
           )
     )
}
Run Code Online (Sandbox Code Playgroud)

我想使用条件语句来检查我们是否在某条路线上.我知道有一种方法可以检查我们当前使用Route类的isCurrent的路径

https://docs.flutter.io/flutter/widgets/Route/isCurrent.html

虽然我不知道如何实现它.

先感谢您!

dart flutter

20
推荐指数
6
解决办法
8861
查看次数

为什么C程序员经常在for循环条件之外声明"counter"变量:

我是C的新手,我认为无论怎么做都没有任何区别,但我注意到在大多数示例中,for的循环都是如下例所示:

int i;
for(i = 0; i < 10; i++){
   //some code
}
Run Code Online (Sandbox Code Playgroud)

而不是我最初如何在Java中引入for循环:

for(int i = 0; i < 10; i++){
    //some code
}
Run Code Online (Sandbox Code Playgroud)

这背后有什么理由在C?

c

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

如何使用Flutter将图像上传到Firebase

我正在使用image_picker库https://pub.dartlang.org/packages/image_picker 来选择/拍摄我要上传的照片.到目前为止,代码已成功将图像上传到Firebase存储,唯一的问题是图像上传后应用程序关闭(不会真正崩溃,只是关闭,VS代码无法连接到设备).代码如下:

 File _image;

  Future _takeProfilePicture() async{
    var image = await ImagePicker.pickImage(source: ImageSource.camera);

    setState((){
      _image = image;
    });
  }

  Future _selectProfilePicture() async{
    var image = await ImagePicker.pickImage(source: ImageSource.gallery);

    setState((){
      _image = image;
    });
  }

  Future<Null> _uploadProfilePicture() async{
    FirebaseUser user = await FirebaseAuth.instance.currentUser();

    final StorageReference ref = FirebaseStorage.instance.ref().child('${user.email}/${user.email}_profilePicture.jpg');
    final StorageUploadTask uploadTask = ref.putFile(_image);
    final Uri downloadUrl = (await uploadTask.future).downloadUrl;
  }

  void _selectAndUploadPicture() async{
    await _selectProfilePicture();
    await _uploadProfilePicture();
  }

  void _takeAndUploadPicture() async{
    await _takeProfilePicture();
    await _uploadProfilePicture();
  }
Run Code Online (Sandbox Code Playgroud)

终端打印以下内容:

W/Firestore( 6873): (0.6.6-dev) …
Run Code Online (Sandbox Code Playgroud)

android dart firebase flutter google-cloud-firestore

9
推荐指数
2
解决办法
6155
查看次数

如何获取当前用户电子邮件地址 FirebaseAuth/Flutter

我想获取当前登录用户的电子邮件,但我似乎找不到方法。我认为它应该类似于:

FirebaseAuth.instance.currentUser().getEmail(); //The .getEmail() part is made up
Run Code Online (Sandbox Code Playgroud)

dart firebase firebase-authentication flutter

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

如何从查询的文档 Flutter/Firetore 中获取字段

我需要查询用户的信息,但到目前为止,我一直坚持如何从文档中的字段中获取值,以保留当前登录用户的信息:

String firstName = "";
String lastName = "";

void getInfo() async{
  var user = FirebaseAuth.instance.currentUser();
  var userQuery = Firestore.instance.collection('Users').where('e-mail', isEqualTo: '$user.email');

  // WHAT SHOULD I DO NEXT

}

@override
void initState(){
   super.initState();
   getInfo();
}

@override
Widget build(BuildContext context){
  return new Scaffold(
    body: new Container(
      child: new ListView(
        children: <Widget>[
          new ListTile(
            title: new Text(firstName)
          ),
          new ListTile(
            title: new Text(lastName)
          )
        ]
      )
    )
  );
}
Run Code Online (Sandbox Code Playgroud)

我有一个名为“用户”的集合,当新用户注册时,它会创建一个文档来存储他的信息。该文档具有字符串类型的字段:'e-mail'、'firstName'、'lastName'。

dart firebase flutter google-cloud-firestore

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