Flutter 颤振-嵌套OnTap不';我不能在瓷砖上工作
Flutter 颤振-嵌套OnTap不';我不能在瓷砖上工作,flutter,listview,dart,Flutter,Listview,Dart,我不完全确定getx如何处理对话框(即,Get.defaultDialog如何工作),但假设它与showDialog类似,那么如果不在对话框内部使用独立的状态管理或StreamBuilder 基本上你必须 将tappendex转换为StreamController,例如BehaviorSubjectfromrxdart 将Get.defaultDialog的content参数与StreamBuilder(或者在您的情况下,应根据值更改重建依赖的子项之一,ListView) 在新创建的Strea
我不完全确定getx如何处理对话框(即,
Get.defaultDialog
如何工作),但假设它与showDialog
类似,那么如果不在对话框内部使用独立的状态管理或StreamBuilder
基本上你必须
- 将
转换为tappendex
,例如StreamController
fromBehaviorSubject
rxdart
- 将
的Get.defaultDialog
参数与content
(或者在您的情况下,应根据值更改重建依赖的子项之一,StreamBuilder
)ListView
- 在新创建的
StreamBuilder
StatefulWidget
,放置在对话框内部,一旦状态发生变化,它也会更新对话框外部StatefulWidget
的索引值
就个人而言,我认为使用流
s的解决方案是可行的。您是否尝试过为列表视图
创建不同的状态小部件
?因此,当调用setState(…)
时,它将只关注重建列表视图。
child: TextField(
readOnly: true,
decoration: InputDecoration(
icon: Icon(Icons.arrow_drop_down),
),
onTap: () {
// var dialog = AlertDialog(
Get.defaultDialog(
title: '',
// shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20.0)),
content: Container(
width: MediaQuery.of(context).size.width / 1.5,
height: MediaQuery.of(context).size.height / 3,
child: Scrollbar(
isAlwaysShown: true,
child: ListView.builder(
shrinkWrap: true,
itemCount: _list.length,
itemBuilder: (context, index) {
return new Container(
color: this.tappedIndex == index ? Colors.grey : Colors.white,
child: ListTile(
title: Text(_list[index]),
onTap: () {
setState(() {
this.tappedIndex = index;
// dropdownValue = _list[index];
});
},
)
);
})
),
),
)