uj5u.com熱心網友回復:
對于像你這樣比較復雜的滾動頁面,你應該使用分流器。在這里閱讀更多關于它們的資訊。https://flutter.dev/docs/development/ui/advanced/slivers
我可以為你提供一個簡化的例子,我想你想做什么(希望我理解得對):
import 'package:flutter/material.dart'。
void main() {
runApp(MyApp())。
}
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context) {
return MaterialApp(
標題。'Flutter Demo' 。
主題。ThemeData(
primarySwatch。Colors.blue,
),
首頁。Search()。
);
}
}
class Search extends StatefulWidget{
@override
_SearchState createState() => _SearchState();
}
class _SearchState extendsState< Search> with SingleTickerProviderStateMixin {
late final TabController _tabController;
@override
空白的initState() {
//確保設定正確的長度。
_tabController = TabController(長度。5, vsync: this)。)
super.initState()。
}
@override
Widget build(BuildContext context) {
return NestedScrollView(
headerSliverBuilder。(context, innerBoxIsScrolled) {
return [
SliverAppBar(
標題。Container( height: 40, color: Colors.gray), // This can be the search bar.
底部。TabBar(
indicatorWeight: 3。
indicatorPadding: EdgeInsets.symmetric(horizontal: 10, vertical: 0)。)
控制器。_tabController,
tabs: <Widget>[
Tab(text: "programming") 。
Tab(text: "General")。
Tab(text: "sport")。
Tab(text: "academia"),
Tab(text: "politics"),
],
),
),
];
},
body: TabBarView(
控制器。_tabController,
兒童。[
///在這里你把所有的頁面都放進去。
///一個頁面的例子。
///你將需要像在StreamBuilder中那樣將其包裹起來。
//原始代碼
CustomScrollView(
slivers: [
SliverList(
委托。SliverChildBuilderDelegate( (text, index) {
return Container(
高度。400,
color: Colors.red.shade200,
margin: EdgeInsets.all(4)。
);
}),
),
],
),
CustomScrollView(
slivers: [
SliverList(
委托。SliverChildBuilderDelegate( (text, index) {
return Container(
高度。400,
color: Colors.green,
margin: EdgeInsets.all(4)。
);
}),
),
],
),
CustomScrollView(
slivers: [
SliverList(
委托。SliverChildBuilderDelegate( (text, index) {
return Container(
高度。400,
color: Colors.blue,
margin: EdgeInsets.all(4)。
);
}),
),
],
),
CustomScrollView(
slivers: [
SliverList(
委托。SliverChildBuilderDelegate( (text, index) {
return Container(
高度。400,
color: Colors.blue,
margin: EdgeInsets.all(4)。
);
}),
),
],
),
CustomScrollView(
slivers: [
SliverList(
委托。SliverChildBuilderDelegate( (text, index) {
return Container(
高度。400,
color: Colors.blue,
margin: EdgeInsets.all(4)。
);
}),
),
],
),
],
),
);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/315685.html
標籤:

