我有一個 ListView,里面有一些專案,包括 SingleChildScrollView:
ListView(
children: [
SingleChildScrollView(
scrollDirection: Axis.horizontal,
physics: const ClampingScrollPhysics(),
primary: false,
child: Padding(
padding: const EdgeInsets.only(bottom: 10),
child: Row(
children: [
// Container(height: 50, width: 200)
],
),
),
),
Container(height: 1000),
],
)
當我一直向下和一直向上滾動時,SingleChildScrollView 會自行將專案一直滾動到最后。我知道 ListView 快取了它顯示的內容,但是是否可以將 SingleChildScrollView 的滾動位置保留到用戶滾動到的任何位置?
uj5u.com熱心網友回復:
我知道兩種方法,一種是cacheExtent隨著addAutomaticKeepAlivesvalue on增加ListView,另一種是 using AutomaticKeepAliveClientMixin。
ListView(
cacheExtent: 2122,// depend on your case
addAutomaticKeepAlives: true,
children: [
SingleChildScrollView(
restorationId: "Scroll Item",
scrollDirection: Axis.horizontal,
physics: const ClampingScrollPhysics(),
第二種方法是使用AutomaticKeepAliveClientMixin,
class MyHorizontalListView extends StatefulWidget {
const MyHorizontalListView({super.key});
@override
State<MyHorizontalListView> createState() => _MyHorizontalListViewState();
}
class _MyHorizontalListViewState extends State<MyHorizontalListView>
with AutomaticKeepAliveClientMixin {
@override
bool get wantKeepAlive => true;
@override
Widget build(BuildContext context) {
super.build(context);
return SingleChildScrollView(
并將其放在 ListView 上。可能有一些捷徑,idk,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516444.html
標籤:扑镖列表显示颤振布局
下一篇:將自定義物件插入自定義物件串列
