嗨,我是Flutter的新手,我使用了下面問題答案中的代碼,擴展/collps作業,但我面臨一個問題。
問題:
當有一個長的串列時,一些ExpansionTile在滾動時自動關閉。
下面是更新的代碼。
void main() => runApp(
const MaterialApp(
首頁。MyApp(),
));
class MyApp extends StatefulWidget{
const MyApp({Key? key}) : super(key: key);
@override
MyAppState createState() {
return new MyAppState()。
}
}
class Days{
var outlateName;
var outletAddress;
var ratings;
var url;
Days(this.outlateName, this.outletAddress, this.results, this.url) 。
}
class MyAppState extends State < MyApp> with AutomaticKeepAliveClientMixin{
List<Days> arrMondayOutlet = [
天(
'Icy Pik Frozen Foods',
'Shop No 3rd, Shyam Gokul Complex, Navrangpura, Ahmedabad - 380009, Near Vijay Cross Road',
'184',
'https://content.jdmagicbox.com/comp/ahmedabad/t4/079pxx79.xx79.110915203656.d8t4/catalogue/icy-pik-frozen-foods-navrangpura-ahmedabad-fast-food-3uvhb6w.jpg')。)
天(
'Binharif Dabeli Gandhidham',
'A/2, Ground Floor, Mohini Complex, Bodakdev, Ahmedabad - 380054, Beside Atithi Dinning Hall',
'138',
'https://content.jdmagicbox.com/comp/ahmedabad/p5/079pxx79.xx79.181022120412.y8p5/catalogue/binharif-dabeli-gandhidham-wala-bodakdev-ahmedabad-fast-food-lfkv5vq2m7.jpg')。)
天(
'A Little Bakers',
'Gf 5 Avadh Pride, Near Metro Pillar 142, Vastral, Ahmedabad - 382418, Near Nirant Chokdi Vastral',
'10',
'https://content.jdmagicbox.com/comp/ahmedabad/q4/079pxx79.xx79.191211134900.g5q4/catalogue/a-little-baker-s-vastral-ahmedabad-cake-shops-iq3rlbq8hi.jpg')。)
];
List<Days> arrTuesdayOutlet = [
天數(
'MD The Snacks Club',
'Shop No 12, BGF Swaminarayan Avenue, Naranpura Vistar, Ahmedabad - 380013, Near Torrent Power Ltd',
'2',
'https://content3.jdmagicbox.com/comp/ahmedabad/p8/079pxx79.xx79.210109120039.s4p8/catalogue/md-the-snacks-club-naranpura-vistar-ahmedabad-fast-food-xg9ousws4a.jpg')。)
天(
'Al Baik',
'13, Abad Arcade, Al Asbab Park, 100 Feet Road Makarba Road Near Essar Pump, Makarba, Ahmedabad - 380051, Opposite Al Burooj',
'8',
'https://content.jdmagicbox.com/comp/ahmedabad/k1/079pxx79.xx79.191127122120.d5k1/catalogue/al-baik-ahmedabad-df40ilybtb.jpg')。)
];
List<Days> arrWednesdayOutlet = [
天數(
'Food Juction',
'B/12,13 ,Krishna Heights Ground Floor, Godrej Garden City Road, Jagatpur, Ahmedabad - 382470, Never.ganesh Genises'/span>,
'1641',
'https://content.jdmagicbox.com/comp/ahmedabad/q2/079pxx79.xx79.170628132059.u6q2/catalogue/food-junction-ahmedabad-ptui2.jpg')。)
天(
'Mangal Murti Garden Restaurant',
'Mangal Murti Dhaba, Vishat- Koba Highway, Chandkheda, Ahmedabad - 382424, Nr Tapovan Circle , Opp Jain Merudham Mandir, Amiyapur'/span>,
'793',
'https://content.jdmagicbox.com/comp/ahmedabad/l4/079pxx79.xx79.171213152347.f6l4/catalogue/mangal-murti-garden-restaurant-chandkheda-ahmedabad-rajasthani-restaurants-ayw0tpnmmb.jpg')。)
天(
'Puffizza',
'103, First Floor, Kairos, Drive In Road, Gurukul, Ahmedabad - 380052, Near Manav Mandir, Opposite Mahatma Gandhi Labour Institute',
'1743'。
'https://content.jdmagicbox.com/comp/ahmedabad/b7/079pxx79.xx79.150124191031.l5b7/catalogue/puffizza-gurukul-ahmedabad-pizza-outlets-bucktrweom.jpg')。)
];
List<Days> arrThursdayOutlet = [
天(
'Jay Ambe Fastfood & Tiffin',
'Bhatt Mevada Boys Canteen, Mithakali Cross Road, Navrangpura, Ahmedabad - 380009, Behind Sardar Patel Seva Samaj'/span>,
'43'。
'https://content.jdmagicbox.com/comp/ahmedabad/x9/079pxx79.xx79.160506105153.t6x9/catalogue/jay-ambey-fastfood-and-tiffin-service-navrangpura-ahmedabad-tiffin-services-0y3yalteny.jpg')。)
天(
'Re Younion Cafe Restaurant',
'Swagat Plaza,opposite Axis Bank, Ambli Bopal Road, Bopal, Ahmedabad - 380058, Opposite TVS Showroom, near Mercedes Show Room',
'17',
'https://content.jdmagicbox.com/comp/ahmedabad/j8/079pxx79.xx79.210821161817.z6j8/catalogue/-h3eh2un1s8.jpg')。)
];
List<Days> arrFridayOutlet = [
天(
'Anchor Food Plaza',
'Sh 6, Bhavnagar Pipali Highway, Aambli, Pipali, Ahmedabad - 382465'/span>,
'2730',
'https://content.jdmagicbox.com/comp/ahmedabad/y2/079pxx79.xx79.170609200047.f9y2/catalogue/anchor-food-plaza-ahmedabad-restaurants-q67c3.jpg')。)
天(
'Purohit Restaurant & Dining',
'Maninagar, Ahmedabad - 380008, Near Apsara Aradhana Theater Puspakunj Kankaria'/span>,
'2306',
'https://content.jdmagicbox.com/comp/ahmedabad/78/079p11678/catalogue/purohit-restaurant-and-dining-hall-maninagar-ahmedabad-restaurants-lhwyzx.jpg')。)
天(
'Kaka Ni Bhaji Pav And Fast',
'160/161, Rameshwar Soci., Rajendrapark Cross Road, National Highway No 8, Odhav Gam, Ahmedabad - 382415',
'1669',
'https://content.jdmagicbox.com/comp/def_content/pav_bhaji_centres/default-pav-bhaji-centres-1.jpg')。)
];
List<Days> arrSaturdayOutlet = [
天數(
'Cafe Urbanyan',
'A-301, 3rd Floor, Celebration City Centre, Gala Gymkhana Road, Bopal, South Bopal, Ahmedabad - 380058, Above Reliance Trends'/span>,
'111',
'https://content.jdmagicbox.com/comp/ahmedabad/d4/079pxx79.xx79.190306210037.q3d4/catalogue/cafe-urbanyan-south-bopal-ahmedabad-restaurants-mcreevefp6.jpg')。)
天(
'王子角'。
'Shop No 17 to 20, Margine Millenium Plaza, Vastrapur, Ahmedabad - 380015, Near Swaminarayan Temple, Mansi Circle',
'6',
'https://content.jdmagicbox.com/comp/ahmedabad/q6/079pxx79.xx79.140424192006.y2q6/catalogue/prince-corner-vastrapur-ahmedabad-pav-bhaji-centres-8rgxm.jpg')。)
];
List<Widget> _getChildren(int count, List< Days> arrData) =>
List<Widget>.generation(
arrData.length,
(i) => Card(
孩子。ListTile(
//**** IMAGE LOADING WITH PLACEHOLDER ****/
領導。ClipRRect(
孩子。FadeInImage.assetNetwork(
placeholder: 'assets/loading.gif'。
image: arrData[i].url,
適合。BoxFit.cover,
高度。60,
width: 60,
),
),
標題。Text(arrData[i].outlateName,
風格。const TextStyle(fontWeight: FontWeight.w500))。
副標題。Text(arrData[i].outletAddress)。
尾部。const Icon(
Icons.arrow_forward_ios,
大小。16。
color: Colors.black,
),
),
),
);
@override
Widget build(BuildContext context) {
super.build(context)。
return MaterialApp(
builder: (context, child) => Scaffold(
appBar: AppBar(
標題。const Text('Outlet List')。
行動: <Widget>[
填充(
padding: const EdgeInsets.only(right: 20.0) 。
孩子。GestureDetector()
onTap: () {
Navigator.push(
背景關系。
MaterialPageRoute( builder: (context) => Products())。
);
},
孩子。const Icon(Icons.production_quantity_limits_sharp)。
),
),
],
),
身體。SafeArea(
孩子。ListView(
children: [
主題(
data: Theme.of(context)
.copyWith(dividerColor: Colors.transparent)。
孩子。ExpansionTile(
標題。const Text(
'Monday'。
風格。TextStyle(fontWeight: FontWeight.bold)。
),
兒童。_getChildren(4, arrMondayOutlet) 。
),
),
主題(
資料。Theme.of(context)
.copyWith(dividerColor: Colors.transparent)。
孩子。ExpansionTile(
標題。const Text(
'星期二'。
風格。TextStyle(fontWeight: FontWeight.bold)。
),
兒童。_getChildren(3, arrTuesdayOutlet) 。
),
),
主題(
資料。Theme.of(context)
.copyWith(dividerColor: Colors.transparent)。
孩子。ExpansionTile(
標題。const Text(
'星期三'。
風格。TextStyle(fontWeight: FontWeight.bold)。
),
兒童。_getChildren(3, arrWednesdayOutlet) 。
),
),
主題(
資料。Theme.of(context)
.copyWith(dividerColor: Colors.transparent)。
孩子。ExpansionTile(
標題。const Text(
'星期四'。
風格。TextStyle(fontWeight: FontWeight.bold)。
),
兒童。_getChildren(3, arrThursdayOutlet) 。
),
),
主題(
資料。Theme.of(context)
.copyWith(dividerColor: Colors.transparent)。
孩子。ExpansionTile(
標題。const Text(
'星期五'。
風格。TextStyle(fontWeight: FontWeight.bold)。
),
兒童。_getChildren(3, arrFridayOutlet) 。
),
),
主題(
資料。Theme.of(context)
.copyWith(dividerColor: Colors.transparent)。
孩子。ExpansionTile(
標題。const Text(
'星期六'。
風格。TextStyle(fontWeight: FontWeight.bold)。
),
兒童。_getChildren(3, arrSaturdayOutlet) 。
),
),
],
),
),
),
);
}
@override
bool get wantKeepAlive => true;
}
你能不能讓我知道我錯過了什么,或者還有什么其他的嗎?
謝謝
uj5u.com熱心網友回復:
簡單地在ExpansionTile中設定maintainState為true
。ExpansionTile(
標題。const Text(
'Monday'。
風格。TextStyle(fontWeight: FontWeight.bold)。
),
兒童。_getChildren(4, arrMondayOutlet) 。
maintainState。true, // <------ add this.
),
uj5u.com熱心網友回復:
在這種情況下,你喜歡讓孩子們活著,即使它不在視線范圍內。
用SingleChildScrollView <Column>代替ListView。
如
body: SafeArea(
孩子。SingleChildScrollView(
child: Column(
children: [
主題(........
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/329160.html
標籤:
