#android #flutter #listview
#Android #флаттер #просмотр списка
Вопрос:
итак, я начал изучать flutter и застрял в своем собственном проекте, на этот раз я пытаюсь создать приложение для списка контактов.
class MyContacts extends StatelessWidget {
final name = [
"Mark Zuckerberg",
"Udin Sasaki",
"Eagle Man",
"Mario Speedwagon",
"Gail Forcewind",
"Riqfi Dayat",
"Fityan fitiw",
"Awwala khalqyn",
"lathon",
"Arifin",
"SMK Yusuf",
"Harley",
"Mom",
"Brother"
];
final number = [
" 62 0895643242455",
" 62 0895062457455",
" 62 0895603211255",
" 62 0895345357455",
" 62 0898764247455",
" 62 0895676247455",
" 62 0895602247455",
" 62 0895602656455",
" 62 0895602247877",
" 62 5567567567567",
" 62 3454564687900",
" 62 2343245345646",
" 62 4567686798767",
" 62 6785634232342"
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Contact'),
leading: Icon(Icons.arrow_back),
actions: <Widget>[
IconButton(
icon: Icon(
Icons.search,
color: Colors.white,
),
onPressed: () {
// do something
},
)
],
),
body: ListView.builder(
itemCount: name.length,
itemBuilder:(context,index){
return ListTile(
title: Text(name[index]),
subtitle: Text(number[index]),
leading: CircleAvatar(
backgroundColor: Colors.lightBlue,
backgroundImage: NetworkImage(
'https://cdn.iconscout.com/icon/free/png-512/avatar-372-456324.png')),
trailing: Icon(Icons.arrow_forward),
onTap: (){
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Contact()),
);
},
);
},
),
);
}
}
class Contact extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Contact'),
actions: <Widget>[
IconButton(
icon: Icon(
Icons.search,
color: Colors.white,
),
onPressed: () {
// do something
},
)
],
),
body: Container(
margin: EdgeInsets.only(top: 50),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.network('https://cdn.iconscout.com/icon/free/png-512/avatar-372-456324.png', height: 150,),
SizedBox(height: 100),
Text("data that stored in the array")
],
)
)
);
}
}
мой вопрос в том, как мне отобразить данные, которые я нажимаю на указанном контакте? например, если я нажму на контакт «Harley», текст на нем будет отображать harley сам по себе. любая помощь будет оценена, спасибо
список контактов:
результат, который мне нужен:
Комментарии:
1. Можете ли вы поделиться изображением пользовательского интерфейса, чтобы понять
2. Вы хотите отобразить данные пользователя с помощью диалогового окна или вы хотите перейти на другую страницу для этого? Если вы хотите использовать диалоговое окно, вы можете использовать это api.flutter.dev/flutter/material/Dialog-class.html или, если вы хотите перейти на другую страницу, вы можете использовать этот flutter.dev/docs/cookbook/navigation/основы навигации
Ответ №1:
В MyContacts передайте имя классу Contact.
Navigator.push(
context, MaterialPageRoute(builder: (context) => Contact(name:name[index])),
);
В классе Contact объявите так
final String name;
Contact({Key key, @required this.name}) : super(key: key);
В теле замените
Text("data that stored in the array")
Для
Text(name)
Вы можете найти больше информации здесь.
Комментарии:
1. когда я передаю «Контакт (имя:name [index]))», он показывает, что именованный параметр «name» не определен. как это может быть?
2. вы определились
name
в контакте?3. да, я уже определил
name
вContact
, но это показывает, что его необходимо инициализировать перед использованием