作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
官方文档已将height
放入container
,但是当我重复代码时。我发现无论是小小的大值(value)。我的物品的高度没有变化。这是我的代码
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:tweet_ui/embedded_tweet_view.dart';
import 'package:tweet_ui/models/api/tweet.dart';
class HerrListView extends StatefulWidget {
final List<Tweet> items;
final int extent;
HerrListView({Key key, @required this.items, this.extent}) : super(key: key);
@override
createState() => _ListViewState();
}
class _ListViewState extends State<HerrListView> {
String title = 'Long List';
String prevTitle = '';
List<Tweet> items;
double itemSize;
// List<String> duplicateItems;
TextEditingController textController;
ScrollController con;
@override
void initState() {
super.initState();
items = widget.items;
// duplicateItems = List.from(items);
textController = TextEditingController();
prevTitle = title;
con = ScrollController();
con.addListener(() {
if (con.offset >= con.position.maxScrollExtent &&
!con.position.outOfRange) {
setState(() {
title = "reached the bottom";
});
} else if (con.offset <= con.position.minScrollExtent &&
!con.position.outOfRange) {
setState(() {
title = "reached the top";
});
} else {
setState(() {
title = prevTitle;
});
}
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: title,
home: Scaffold(
appBar: AppBar(
title: Text(title),
),
body: ListView.builder(
padding: const EdgeInsets.all(10),
controller: con,
itemExtent: widget.extent.toDouble(),
itemCount: items.length,
itemBuilder: (context, index) {
return Container(
height: 100,
color: Colors.amber[index * 100],
child: Text('Hi'),
);
// return Expanded(
// child: EmbeddedTweetView.fromTweet(widget.items[index]),
// );
// return Card(
// child: Padding(
// padding: const EdgeInsets.all(16.0),
// child: Text(
// '${items[index].text}',
// style: TextStyle(fontSize: 22.0),
// ),
// ),
// );
},
),
));
}
void dispose() {
// Don't forget to dispose the ScrollController.
con.dispose();
super.dispose();
}
}
尝试:
resizeToAvoidBottomPadding: false,
放入
Scaffold
中,但不起作用
最佳答案
列表显示。 itemExtend 属性强制子级具有给定范围。
删除此行itemExtent: widget.extent.toDouble(),
有关更多信息:https://api.flutter.dev/flutter/widgets/ListView/itemExtent.html
关于flutter - 如何在 `ListView`中编辑项目的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64209222/
我是一名优秀的程序员,十分优秀!