#flutter #dart #flutter-layout #flutter-image
#flutter #dart #flutter-layout #flutter-image
Вопрос:
Здесь сетевой образ не загружается, когда я передаю переменную ImageUrl внутри него. Но если я использую URL-адрес непосредственно внутри параметра, тогда он работает нормально. Как мне решить эту проблему, поскольку мне нужно взять URL-адрес из FirebaseFirestore, поэтому я должен сохранить его внутри строковой переменной.
Выполнение этого работает нормально — NetworkImage('https://images.ctfassets.net/3s5io6mnxfqz/6ZImCEzx6UuvuKaAiZEDDN/50479ee4a0902deb4eb1bab720ce248a/image1.jpg');
Но это не работает — NetworkImage(imageURL);
class _MainOrderScreenState extends State<MainOrderScreen> {
final _auth = FirebaseAuth.instance;
FirebaseFirestore _firestore = FirebaseFirestore.instance;
String imageURL =
'https://images.ctfassets.net/3s5io6mnxfqz/6ZImCEzx6UuvuKaAiZEDDN/50479ee4a0902deb4eb1bab720ce248a/image1.jpg';
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: Container(
padding: EdgeInsets.symmetric(vertical: 20, horizontal: 20),
child: Column(
children: [
Text(
'currently serving:',
style: kTiffinzoTitle.copyWith(fontSize: 40),
),
Image(
image: imageURL != null
? NetworkImage(imageURL)
: null,
width: 200,
),
Container(
decoration: kButtonStyle,
child: FlatButton(
child: Text('Log out'),
onPressed: () {
_auth.signOut();
Navigator.pop(context);
},
),
)
],
),
),
));
}
}
Ответ №1:
Мне пришлось закомментировать несколько строк, но кроме этого я воспроизвел ваш точный код в DartPad. Код работает так, как ожидалось. Изображение также загружено, как и ожидалось. Пожалуйста, смотрите Код ниже :
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MainOrderScreen(),
);
}
}
class MainOrderScreen extends StatefulWidget {
MainOrderScreen({Key key}) : super(key: key);
@override
_MainOrderScreenState createState() => _MainOrderScreenState();
}
class _MainOrderScreenState extends State<MainOrderScreen> {
//final _auth = FirebaseAuth.instance;
//FirebaseFirestore _firestore = FirebaseFirestore.instance;
String imageURL = 'https://images.ctfassets.net/3s5io6mnxfqz/6ZImCEzx6UuvuKaAiZEDDN/50479ee4a0902deb4eb1bab720ce248a/image1.jpg';
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: Container(
padding: EdgeInsets.symmetric(vertical: 20, horizontal: 20),
child: Column(
children: [
Text(
'currently serving:',
//style: kTiffinzoTitle.copyWith(fontSize: 40),
),
Image(
image: imageURL != null ? NetworkImage(imageURL) : null,
width: 200,
),
Container(
//decoration: kButtonStyle,
child: FlatButton(
child: Text('Log out'),
onPressed: () {
//_auth.signOut();
Navigator.pop(context);
},
),
)
],
),
),
),
);
}
}