Я хотел бы реализовать onTap
в моем ListView
, поэтому мне также нужно реализовать return ListTile
, но у меня есть dead code
в моем ListTile
фрагменте.
Я хотел бызнаю, почему и как это решить.
Вот мой код:
@override
Widget build(BuildContext context) {
return ListView.separated(
itemBuilder: (context, index) {
var len = tasks.length;
debugPrint("lenght: $len and index: $index");
if(tasks.length - 1 == index) {
_loadData(index);
return Container(
alignment: Alignment.center,
padding: EdgeInsets.all(16.0),
child: SizedBox(
width: 24.0,
height: 24.0,
child: CircularProgressIndicator(strokeWidth: 2.0),
)
);
}
else {
var item = tasks[index];
return Padding(
padding: EdgeInsets.all(8.0),
child: Column(
children: <Widget>[
Row(
children: <Widget>[
getDotWidgetByType(item.taskStatus),
new Container(
padding: EdgeInsets.symmetric(horizontal: 8.0),
child: new Text(
item.taskTitle,
style: new TextStyle(
color: Colors.black,
fontSize: 18,
),
),
),
getStatusTextByType(item.taskStatus)
],
),
Container(
margin: EdgeInsets.only(top: 4.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(item.taskLeader),
Text(item.taskDeadLine),
IconButton(
onPressed: (){
//Todo change priorities/and status
},
icon: Icon(Icons.gps_fixed))
],
),
)
],
),
);
}
// DEAD CODE FROM HERE
return ListTile(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SingleTaskPage(taskItem: tasks[index]),
),
);
},
);
//TO HERE
},
separatorBuilder: (context, index) => Divider(height: 0.0),
itemCount: tasks.length
);
}
Возможно, есть другой способ реализации onTap, но я не нашел его.
Мойфрагмент ListTile взят из: https://flutter.dev/docs/cookbook/navigation/passing-data
РЕДАКТИРОВАТЬ: У меня есть текущий интерфейс: Я могу полностью изменить свой код, пока я сохраняю этот интерфейс.Моя текущая проблема: я хочу реализовать onTap (), но я не могу с моей текущей логикой кода.