#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.
Я знаю, что я опоздал, но для других людей, которые сходят с ума от этой ошибки.