Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- switch
- multiprovider
- Navigator
- 문법
- user
- globalkey
- Camera
- divider
- consumer
- datetime
- Snapshot
- setstate
- signout
- Stream
- snackbar
- changenotifier
- ListView.builder
- transform
- platformexception
- borderRadius
- changenotifierprovider
- runTransaction
- permission
- swift 문법
- Swift
- Firebase
- reference
- enum
- provider
- controller
Archives
- Today
- Total
코딩하는 제리
[Flutter/Project](Instagram Clone) search screen에 모든 유저 출력 본문
Flutter/Project_InstaClone(완)
[Flutter/Project](Instagram Clone) search screen에 모든 유저 출력
JerryCho 2021. 3. 2. 14:14소스코드 및 pubspec.yaml
// screens/search_screen.dart
import 'package:flutter/material.dart';
import 'package:flutter_project_IJ/models/firestore/user_model.dart';
import 'package:flutter_project_IJ/repo/user_network_repository.dart';
import 'package:flutter_project_IJ/widgets/my_progress_indicator.dart';
import 'package:flutter_project_IJ/widgets/rounded_avatar.dart';
import 'package:local_image_provider/local_album.dart';
class SearchScreen extends StatefulWidget {
@override
_SearchScreenState createState() => _SearchScreenState();
}
class _SearchScreenState extends State<SearchScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('Follow/UnFollow'),
),
body: StreamBuilder<List<UserModel>>(
stream: userNetworkRepository.getAllUsersWithoutMe(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return SafeArea(
child: ListView.separated(
// 데이터 갯수
itemCount: snapshot.data.length,
itemBuilder: (context, index) {
UserModel userModel = snapshot.data[index];
return ListTile(
onTap: () {
setState(() {
// 클릭마다 followings의 반대 값을 넣음(true or false)
// followings[index] = !followings[index];
});
},
leading: RoundedAvatar(),
title: Text(userModel.username),
subtitle: Text('this is user bio of ${userModel.username}'),
trailing: Container(
height: 30,
width: 80,
// Container 중앙정렬
alignment: Alignment.center,
decoration: BoxDecoration(
// 배경색
color: Colors.blue[50],
// 테두리 모양
border: Border.all(color: Colors.blue, width: 0.5),
// 모서리 둥글기
borderRadius: BorderRadius.circular(8),
),
child: Text(
'following',
style: TextStyle(fontWeight: FontWeight.bold),
),
),
);
},
separatorBuilder: (context, builder) {
return Divider(
// 구분선
color: Colors.grey,
);
},
),
);
} else {
return MyProgressIndicator();
}
},
),
);
}
}
'Flutter > Project_InstaClone(완)' 카테고리의 다른 글
[Flutter/Project](Instagram Clone) follow한 유저의 포스트를 피드에 출력하기 (0) | 2021.03.04 |
---|---|
[Flutter/Project](Instagram Clone) user follow/unfollow (0) | 2021.03.02 |
[Flutter/Project](Instagram Clone) 본인을 제외한 모든 유저 가져오기 (0) | 2021.03.02 |
[Flutter/Project](Instagram Clone) 포스트 이미지 다운로드 링크 저장 (0) | 2021.03.02 |
[Flutter/Project](Instagram Clone) 포스트 데이터 업로드/업데이트 파일 작성 (0) | 2021.03.01 |
Comments