#android #flutter #dart
Вопрос:
добрый день, я новичок в программировании на Android. И я хочу спросить об ошибке в моем коде. ошибка: «Во время компоновки было выдано следующее утверждение: рендерфлекс переполнен 81 пикселем внизу». Я пытался найти решение, но все равно ничего не работает . и это мой код. Спасибо
class berita_secondpage extends StatelessWidget {
final String title;
berita_secondpage({
this.title,
});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(title),
),
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(30),
bottomRight: Radius.circular(30)),
image: DecorationImage(
image: AssetImage("assets/images/aquaman.jpg"),
fit: BoxFit.cover,
))),
),
Container(
height: 260,
child: Column(
children: <Widget>[
Padding(
padding: EdgeInsets.fromLTRB(20, 20, 20, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
title,
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 25,
fontWeight: FontWeight.w600,
),
),
Text(
"diupload pada : 20 Agustus 2021",
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 10,
fontWeight: FontWeight.w600,
),
),
SizedBox(
width: 15,
),
Text(
"testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing",
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 17,
fontWeight: FontWeight.w600,
),
),
],
),
)
],
),
)
],
));
}
}
Ответ №1:
Ваша проблема заключается в том, что это происходит из-за высоты вашего 2-го контейнера. вы задаете высоту контейнера 260, но вашему тексту требуется больше места для отображения. Помните, «Рендерфлекс переполнен……» хочет сказать вам, что вашим данным (изображению/тексту) нужно больше места, но вы даете ему мало места.
class SecondPage extends StatelessWidget {
final String title;
SecondPage({required this.title});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(title),
),
body: Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Container(
decoration: const BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(30),
bottomRight: Radius.circular(30)),
image: DecorationImage(
image: NetworkImage('https://picsum.photos/250?image=9'),
fit: BoxFit.cover,
),
),
),
),
Container(
height: 360,
child: Column(
children: <Widget>[
Padding(
padding: EdgeInsets.fromLTRB(20, 20, 20, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
title,
style: const TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 25,
fontWeight: FontWeight.w600,
),
),
const Text(
"diupload pada : 20 Agustus 2021",
style: TextStyle(
color: Colors.lightBlueAccent,
fontSize: 10,
fontWeight: FontWeight.w600,
),
),
const SizedBox(
width: 15,
),
const Text(
"testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing",
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 17,
fontWeight: FontWeight.w600,
),
),
],
),
)
],
),
)
],
),
));
}
}
Ответ №2:
Вы можете попробовать добавить своего второго Container
в Flexible
виджет. Ошибка просто говорит о том, что виджет больше, чем окно просмотра.
Ответ №3:
Вы можете обернуть свою колонку в компонент Wrap
Container(
height: 260,
child: Wrap(
children: [
Column(
children: <Widget>[
Padding(
padding: EdgeInsets.fromLTRB(20, 20, 20, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
title,
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 25,
fontWeight: FontWeight.w600,
),
),
Text(
"diupload pada : 20 Agustus 2021",
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 10,
fontWeight: FontWeight.w600,
),
),
SizedBox(
width: 15,
),
Text(
"testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing",
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 17,
fontWeight: FontWeight.w600,
),
),
],
),
)
],
),
],
),
)
Комментарии:
1. это не ошибка. но мой текст обрезан (он не прокручивается до конца моего текста)
2.
Container( height: 260, child: SingleChildScrollView( child: Column(...), ), )
Ответ №4:
Container(
height: 260,
child: SingleChildScrollView(
child: Column(
children: <Widget>[
Padding(
padding: EdgeInsets.fromLTRB(20, 20, 20, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
title,
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 25,
fontWeight: FontWeight.w600,
),
),
Text(
"diupload pada : 20 Agustus 2021",
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 10,
fontWeight: FontWeight.w600,
),
),
SizedBox(
width: 15,
),
Text(
"testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing",
style: TextStyle(
// color: Colors.lightBlueAccent,
fontSize: 17,
fontWeight: FontWeight.w600,
),
),
],
),
)
],
),
),
)