【发布时间】:2021-01-20 08:30:40
【问题描述】:
官方文档已将height 放在container 中,但是当我重复代码时。我发现,不管是小价值还是大价值。我的物品的高度没有改变。这是我的代码
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,但不起作用
问题: 如何编辑 ListView 项的高度?
【问题讨论】:
-
将 height 属性更改为较小的值会缩小它,删除它会缩小到它的子尺寸
标签: flutter listview dart layout