我正在尝试抖动,但遇到一个问题。我有一个文本,其结果来自服务,一个ListView(构建器)显示这些结果(作为卡片使用,以便具有漂亮的框,如布局)。
我的目标是,随着用户滚动列表,页面(文本)的结果部分将消失。
我按照https://docs.flutter.io/flutter/widgets/SingleChildScrollView-class.html中的描述尝试过SingleChildScrollView,但是它没有用。
截屏: enter image description here
任何见解都会非常有帮助。预先感谢。
更新(小部件树)
Widget build(BuildContext context) {
return new Scaffold(
body: new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
new Container(
padding: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 0.0),
child: new RichText(
text: new TextSpan(
children: <TextSpan>[
new TextSpan(
text: this.model == null
? "0"
: this.model.length.toString(),
style: new TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold,
color: Colors.black87,
),
),
new TextSpan(
text: ' Results',
style: new TextStyle(
fontSize: 14.0,
color: Colors.black87,
),
),
],
),
),
),
new Expanded(
child: new RefreshIndicator(
key: refreshKey,
child: new ListView.builder(
itemCount: this.model?.length,
itemBuilder: (BuildContext context, int index) {
final Model model= this.model[index];
return new Card(child: new Text(model.id.toString()),);
},
),
onRefresh: _handleRefresh,
),
),
],
),
);
}
答案 0 :(得分:1)
您可以尝试使用以下给定的结构,但看起来不太hacky:p
Widget build(BuildContext context) {
List<String> results = List.generate(40, (int i) => "Result $i");
return Scaffold(
appBar: AppBar(title: Text("Test Screen")),
body: SingleChildScrollView(
child: Container(
width: double.infinity,
child: Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
Text("RESULTS", style: TextStyle(fontWeight: FontWeight.bold)),
Column(
mainAxisSize: MainAxisSize.min,
children: results.map((String s) => Container(
width: double.maxFinite,
child: Card(child:Text(s)))).toList(),
),
]),
)
)
);
}