Именованный параметр ‘column’ не определен. Попробуйте исправить имя на имя существующего именованного параметра

#flutter

#flutter

Вопрос:

`

 Widget build(BuildContext context) {
    double height=MediaQuery.of(context).size.height;
    double width=MediaQuery.of(context).size.width;
    return Scaffold(
      appBar: AppBar(
        title: Text("Device Details"),
        backgroundColor: Colors.black,
      ),
      body : SingleChildScrollView(
        child: Container(
            **Column**: <Widget>[
              Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  getImageWidget(),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                    children: <Widget>[
                      MaterialButton(
                          color: Colors.green,
                          child: Text(
                            "Camera",
                            style: TextStyle(color: Colors.white),
                          ),
                          onPressed: () {
                            getImage(ImageSource.camera);
                          }),
  

‘Именованный параметр `column’ не определен. Попробуйте исправить имя на имя существующего именованного параметра или определить именованный параметр с именем ‘column’. Откройте документацию.

Если я заменю столбец на «body» в столбце: SingleChildScrollView(

тогда он говорит, что аргумент для именованного параметра ‘body’ уже был указан.

Пожалуйста, исправьте мою проблему, предоставив свои ценные предложения.

 class _MyFormPageState extends State<MyFormPage> {

  File _selectedFile;
  bool _inProcess = false;

  Widget getImageWidget() {
    if (_selectedFile != null) {
      return Image.file(
        _selectedFile,
        width: 250,
        height: 250,
        fit: BoxFit.cover,
      );
    } else {
      return Image.asset(
        "assets/placeholder.jpg",
        width: 250,
        height: 250,
        fit: BoxFit.cover,
      );
    }
  }

  getImage(ImageSource source) async {
    this.setState((){
      _inProcess = true;
    });
    File image = await ImagePicker.pickImage(source: source);
    if(image != null){
      File cropped = await ImageCropper.cropImage(
          sourcePath: image.path,
          aspectRatio: CropAspectRatio(
              ratioX: 1, ratioY: 1),
          compressQuality: 100,
          maxWidth: 700,
          maxHeight: 700,
          compressFormat: ImageCompressFormat.jpg,
          androidUiSettings: AndroidUiSettings(
            toolbarColor: Colors.deepOrange,
            toolbarTitle: "RPS Cropper",
            statusBarColor: Colors.deepOrange.shade900,
            backgroundColor: Colors.white,
          )
      );

      this.setState((){
        _selectedFile = cropped;
        _inProcess = false;
      });
    } else {
      this.setState((){
        _inProcess = false;
      });
    }
  }

  final dbHelper = DatabaseHelper.instance;
  String companyname,modelname,series,mfgyear;
  @override
  Widget build(BuildContext context) {
    double height=MediaQuery.of(context).size.height;
    double width=MediaQuery.of(context).size.width;
    return Scaffold(
        body: Stack(
          children: <Widget>[
            Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                getImageWidget(),
                Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    MaterialButton(
                        color: Colors.green,
                        child: Text(
                          "Camera",
                          style: TextStyle(color: Colors.white),
                        ),
                        onPressed: () {
                          getImage(ImageSource.camera);
                        }),
                    MaterialButton(
                        color: Colors.deepOrange,
                        child: Text(
                          "Device",
                          style: TextStyle(color: Colors.white),
                        ),
                        onPressed: () {
                          getImage(ImageSource.gallery);
                        })
                  ],
                )
              ],
            ),
            (_inProcess)?Container(
              color: Colors.white,
              height: MediaQuery.of(context).size.height * 0.95,
              child: Center(
                child: CircularProgressIndicator(),
              ),
            ):Center()
          ],
        ),

      appBar: AppBar(
        title: Text(" Details"),
        backgroundColor: Colors.black,
      ),
      
      **column** : SingleChildScrollView(
        child: Container(
        decoration: new BoxDecoration(
          color: Colors.black,
          image: new DecorationImage(
            fit: BoxFit.cover,
            colorFilter: new ColorFilter.mode(Colors.grey.withOpacity(.5),BlendMode.dstATop),
            image: new AssetImage(
              "asset/bg00.jpg"
            ),
          ),
        ),
        height: height,
        width: width,
        child: Padding(
          padding: const EdgeInsets.all(5),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                "Enter the Device Details",
                style: TextStyle(
                  color: Colors.white,
                  fontSize: 30,
                  fontWeight: FontWeight.bold,
                ),
              ),


              TextField(
                onChanged: (val){
                  companyname=val;
                },
                cursorColor: Colors.black,
                style: TextStyle(
                    height: 1
                ),
                decoration: InputDecoration(
                  filled: true,
                  fillColor: Colors.grey[500],
                  prefixIcon: Icon(Icons.edit,color: Colors.blue[900],),
                  hintStyle: TextStyle(
                    color:Colors.black,
                  ),
                  hintText: "Enter the Company Name",
                ),
              ),
              SizedBox(
                height: 5,
              ),

              

           
  

Комментарии:

1. Пожалуйста, поделитесь скриншотом макета, чтобы я мог порекомендовать возможный способ его реализации.

2. хорошо, теперь я делюсь скриншотом после редактирования моего вопроса. Пожалуйста, изучите это.

Ответ №1:

Посмотрите документ для Scaffold . Действительно, свойства не названы column .

Я думаю, что у вас есть ваш SingleChildScrollView в неправильном месте.

Оно должно быть в теле, которое Stack Column в данный момент содержит a с a . Не уверен, чего вы хотите достичь визуально, но вам может потребоваться проверить в этом направлении. (Возможно, поместить SingleChildScrollView в конец указанного Column )

Комментарии:

1. Пожалуйста, будьте немного кратки, я не понял, что делать, если у меня двойное «тело» или двойное «столбец», т. е. уже определено. Пожалуйста, объясните мне два случая: 1-й случай при возврате Scaffold( body: Stack(дочерние элементы: <Widget>[Column( ) и 2-й случай в AppBar: AppBar( заголовок: Text(«»), backgroundColor: Colors.black, ),body: SingleChildScrollView дочерний элемент: Container ( )

2. У вас может быть два body внутри Scaffold . Но у вас body может быть виджет, содержащий все, что вам нужно.

3. Как определить в таких случаях. Эти ошибки возникают часто. Пожалуйста, предложите мне постоянное решение, например: «Как определить что-либо в любом месте?

Ответ №2:

Проверьте, есть ли конфликты в импортированных пакетах, эта ошибка произошла со мной, когда я использовал «Переменную» из moor.библиотека dart. Я устранил ошибку, преобразовав инструкцию import в import ‘moor.dart’ как moor.

Я знаю, что я опоздал, но для других людей, которые сходят с ума от этой ошибки.