
class NeighborhoodLife {
final String category;
final String profileImgUri;
final String userName;
final String location;
final String content;
final String contentImgUri;
final int commentCount;
final int authCount;
final String date;
NeighborhoodLife({
required this.category,
required this.profileImgUri,
required this.userName,
required this.location,
required this.content,
required this.contentImgUri,
required this.commentCount,
required this.authCount,
required this.date,
});
}
// 샘플 데이터 1
String lifeTitle = '이웃과 함께 만드는 봄 간식 지도 마음까지 따듯해지는 봄 간식을 만나보세요.';
// 샘플 데이터 2
List<NeighborhoodLife> neighborhoodLifeList = [
NeighborhoodLife(
category: '우리동네질문',
profileImgUri: 'https://picsum.photos/id/871/200/300?grayscale', // TODO 06 수정
userName: '헬로비비',
location: '좌동',
content: '예민한 개도 미용할 수 있는 곳이나 동물 병원 어디 있을까요?\n'
'내일 유기견을 데려오기로 했는데 아직 성향을 잘 몰라서 걱정이 돼요 ㅜㅜ.',
contentImgUri: 'https://picsum.photos/id/872/200/300?grayscale',
commentCount: 11,
authCount: 3,
date: '3시간전',
),
NeighborhoodLife(
category: '우리동네소식',
profileImgUri: 'https://picsum.photos/id/873/200/100?grayscale',
userName: '당근토끼',
location: '우동',
content: '이명 치료 잘 아시는 분 있나요?',
contentImgUri: 'https://picsum.photos/id/874/200/100?grayscale',
commentCount: 2,
authCount: 1,
date: '1일전',
),
NeighborhoodLife(
category: '분실',
profileImgUri: 'https://picsum.photos/id/875/200/100?grayscale',
userName: 'flutter',
location: '중동',
content: '롯데캐슬 방향으로 재래시장 앞쪽 지나 혹시 에어팟 오른쪽 주우신 분 있나요ㅜㅜ',
contentImgUri: '',
commentCount: 11,
authCount: 8,
date: '1일전',
),
NeighborhoodLife(
category: '우리동네질문',
profileImgUri: 'https://picsum.photos/id/880/200/100',
userName: '구름나드리',
location: '우동',
content: '밤부터 새벽까지 하던 토스트 아저씨 언제 다시 오나요ㅜㅠ',
contentImgUri: '',
commentCount: 0,
authCount: 7,
date: '3일전',
),
NeighborhoodLife(
category: '우리동네질문',
profileImgUri: 'https://picsum.photos/id/730/200/100?grayscale',
userName: '아는형',
location: '만덕동',
content: '아니 이 시간에 마이크 들고 노래하는 사람은 정상인가요?',
contentImgUri: 'https://picsum.photos/id/885/200/100',
commentCount: 11,
authCount: 2,
date: '5일전',
),
];
import 'package:carrot_market_ui/screens/components/appbar_preffered_size.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class NeighborhoodLifeScreen extends StatelessWidget {
const NeighborhoodLifeScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[100],
appBar: AppBar(
title: Text("동네생활"),
actions: [
IconButton(icon: Icon(CupertinoIcons.search), onPressed: (){}),
IconButton(icon: Icon(CupertinoIcons.plus_rectangle_on_rectangle), onPressed: (){}),
IconButton(icon: Icon(CupertinoIcons.bell), onPressed: (){}),
],
bottom: appBarBottomLine(),
),
body: ListView(
children: [
],
),
);
}
}

import 'package:carrot_market_ui/models/neighborhood_life.dart';
import 'package:carrot_market_ui/screens/components/image_container.dart';
import 'package:carrot_market_ui/theme.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class LifeHeader extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Card(
margin: EdgeInsets.only(bottom: 12.0),
elevation: 0.5,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(0.0)),
child: Padding(
padding: EdgeInsets.all(16.0),
child: Row(
children: [
ImageContainer(
borderRadius: 6.0,
imageUrl: "http://picsum.photos/id/780/200/100",
width: 45.0,
height: 45.0),
const SizedBox(width: 16.0),
Expanded(
child: Text(
lifeTitle,
style: textTheme().bodyLarge,
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
),
],
),
),
);
}
}

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../models/neighborhood_life.dart';
import '../../../theme.dart';
import '../components/image_container.dart';
class LifeBody extends StatelessWidget {
final NeighborhoodLife neighborhoodLife;
const LifeBody({Key? key, required this.neighborhoodLife}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
border: Border(
bottom: BorderSide(width: 0.5, color: Color(0xFFD4D5DD)),
),
),
child: Column(
children: [
_buildTop(),
_buildWriter(),
_buildWriting(),
_buildImage(),
Divider(
height: 1,
thickness: 1,
color: Colors.grey[300],
),
_buildTail(neighborhoodLife.commentCount),
],
),
);
}
Padding _buildTop() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.orange[100], height: 30),
);
}
Padding _buildWriter() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.red[100], height: 30),
);
}
Padding _buildWriting() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.blue[100], height: 50),
);
}
_buildImage() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.black, height: 150),
);
}
Padding _buildTail(int commentCount) {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.lime[100], height: 50),
);
}
}

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../models/neighborhood_life.dart';
import '../../../theme.dart';
import '../components/image_container.dart';
class LifeBody extends StatelessWidget {
final NeighborhoodLife neighborhoodLife;
const LifeBody({Key? key, required this.neighborhoodLife}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
border: Border(
bottom: BorderSide(width: 0.5, color: Color(0xFFD4D5DD)),
),
),
child: Column(
children: [
_buildTop(),
_buildWriter(),
_buildWriting(),
_buildImage(),
Divider(
height: 1,
thickness: 1,
color: Colors.grey[300],
),
_buildTail(neighborhoodLife.commentCount),
],
),
);
}
Padding _buildTop() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.all(4),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(Radius.circular(4)),
color: Color.fromRGBO(247, 247, 247, 1),
),
child: Text(neighborhoodLife.category, style: textTheme().bodyMedium),
),
Text(neighborhoodLife.date,
style: textTheme().bodyMedium,
)
],
),
);
}
Padding _buildWriter() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.red[100], height: 30),
);
}
Padding _buildWriting() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.blue[100], height: 50),
);
}
_buildImage() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.black, height: 150),
);
}
Padding _buildTail(int commentCount) {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.lime[100], height: 50),
);
}
}

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../models/neighborhood_life.dart';
import '../../../theme.dart';
import '../components/image_container.dart';
class LifeBody extends StatelessWidget {
final NeighborhoodLife neighborhoodLife;
const LifeBody({Key? key, required this.neighborhoodLife}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
border: Border(
bottom: BorderSide(width: 0.5, color: Color(0xFFD4D5DD)),
),
),
child: Column(
children: [
_buildTop(),
_buildWriter(),
_buildWriting(),
_buildImage(),
Divider(
height: 1,
thickness: 1,
color: Colors.grey[300],
),
_buildTail(neighborhoodLife.commentCount),
],
),
);
}
Padding _buildTop() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.all(4),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(Radius.circular(4)),
color: Color.fromRGBO(247, 247, 247, 1),
),
child: Text(neighborhoodLife.category, style: textTheme().bodyMedium),
),
Text(
neighborhoodLife.date,
style: textTheme().bodyMedium,
)
],
),
);
}
Padding _buildWriter() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
children: [
ImageContainer(
width: 30,
height: 30,
borderRadius: 15,
imageUrl: neighborhoodLife.profileImgUri,
),
SizedBox(width: 8),
Text.rich(
TextSpan(
children: [
TextSpan(
text: " ${neighborhoodLife.userName}",
style: textTheme().bodyText1,
),
TextSpan(
text: " ${neighborhoodLife.location}",
),
TextSpan(
text: " 인증 ${neighborhoodLife.authCount}회",
),
],
),
),
],
),
);
}
Padding _buildWriting() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.blue[100], height: 50),
);
}
Padding _buildImage() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.black, height: 150),
);
}
Padding _buildTail(int commentCount) {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.lime[100], height: 50),
);
}
}

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../models/neighborhood_life.dart';
import '../../../theme.dart';
import '../components/image_container.dart';
class LifeBody extends StatelessWidget {
final NeighborhoodLife neighborhoodLife;
const LifeBody({Key? key, required this.neighborhoodLife}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
border: Border(
bottom: BorderSide(width: 0.5, color: Color(0xFFD4D5DD)),
),
),
child: Column(
children: [
_buildTop(),
_buildWriter(),
_buildWriting(),
_buildImage(),
Divider(
height: 1,
thickness: 1,
color: Colors.grey[300],
),
_buildTail(neighborhoodLife.commentCount),
],
),
);
}
Padding _buildTop() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.all(4),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(Radius.circular(4)),
color: Color.fromRGBO(247, 247, 247, 1),
),
child: Text(neighborhoodLife.category, style: textTheme().bodyMedium),
),
Text(
neighborhoodLife.date,
style: textTheme().bodyMedium,
)
],
),
);
}
Padding _buildWriter() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
children: [
ImageContainer(
width: 30,
height: 30,
borderRadius: 15,
imageUrl: neighborhoodLife.profileImgUri,
),
SizedBox(width: 8),
Text.rich(
TextSpan(
children: [
TextSpan(
text: " ${neighborhoodLife.userName}",
style: textTheme().bodyText1,
),
TextSpan(
text: " ${neighborhoodLife.location}",
),
TextSpan(
text: " 인증 ${neighborhoodLife.authCount}회",
),
],
),
),
],
),
);
}
Padding _buildWriting() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Align(
alignment: Alignment.centerLeft,
child: Text(
neighborhoodLife.content,
style: textTheme().bodyLarge,
maxLines: 3,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.start,
),
)
);
}
Padding _buildImage() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.black, height: 150),
);
}
Padding _buildTail(int commentCount) {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.lime[100], height: 50),
);
}
}

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../models/neighborhood_life.dart';
import '../../../theme.dart';
import '../components/image_container.dart';
class LifeBody extends StatelessWidget {
final NeighborhoodLife neighborhoodLife;
const LifeBody({Key? key, required this.neighborhoodLife}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
border: Border(
bottom: BorderSide(width: 0.5, color: Color(0xFFD4D5DD)),
),
),
child: Column(
children: [
_buildTop(),
_buildWriter(),
_buildWriting(),
_buildImage(),
Divider(
height: 1,
thickness: 1,
color: Colors.grey[300],
),
_buildTail(neighborhoodLife.commentCount),
],
),
);
}
Padding _buildTop() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.all(4),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(Radius.circular(4)),
color: Color.fromRGBO(247, 247, 247, 1),
),
child: Text(neighborhoodLife.category, style: textTheme().bodyMedium),
),
Text(
neighborhoodLife.date,
style: textTheme().bodyMedium,
)
],
),
);
}
Padding _buildWriter() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
children: [
ImageContainer(
width: 30,
height: 30,
borderRadius: 15,
imageUrl: neighborhoodLife.profileImgUri,
),
SizedBox(width: 8),
Text.rich(
TextSpan(
children: [
TextSpan(
text: " ${neighborhoodLife.userName}",
style: textTheme().bodyText1,
),
TextSpan(
text: " ${neighborhoodLife.location}",
),
TextSpan(
text: " 인증 ${neighborhoodLife.authCount}회",
),
],
),
),
],
),
);
}
Padding _buildWriting() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Align(
alignment: Alignment.centerLeft,
child: Text(
neighborhoodLife.content,
style: textTheme().bodyLarge,
maxLines: 3,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.start,
),
)
);
}
Visibility _buildImage() {
return Visibility(
visible: neighborhoodLife.contentImgUri !="",
child:Padding(
padding: EdgeInsets.only(left: 16, right: 16, bottom: 16),
child: Image.network(
neighborhoodLife.contentImgUri,
height: 200,
width: double.infinity,
fit: BoxFit.cover,
),
)
);
}
Padding _buildTail(int commentCount) {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Container(color: Colors.lime[100], height: 50),
);
}
}

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../models/neighborhood_life.dart';
import '../../../theme.dart';
import '../components/image_container.dart';
class LifeBody extends StatelessWidget {
final NeighborhoodLife neighborhoodLife;
const LifeBody({Key? key, required this.neighborhoodLife}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
border: Border(
bottom: BorderSide(width: 0.5, color: Color(0xFFD4D5DD)),
),
),
child: Column(
children: [
_buildTop(),
_buildWriter(),
_buildWriting(),
_buildImage(),
Divider(
height: 1,
thickness: 1,
color: Colors.grey[300],
),
_buildTail(neighborhoodLife.commentCount),
],
),
);
}
Padding _buildTop() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.all(4),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(Radius.circular(4)),
color: Color.fromRGBO(247, 247, 247, 1),
),
child:
Text(neighborhoodLife.category, style: textTheme().bodyMedium),
),
Text(
neighborhoodLife.date,
style: textTheme().bodyMedium,
)
],
),
);
}
Padding _buildWriter() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
children: [
ImageContainer(
width: 30,
height: 30,
borderRadius: 15,
imageUrl: neighborhoodLife.profileImgUri,
),
SizedBox(width: 8),
Text.rich(
TextSpan(
children: [
TextSpan(
text: " ${neighborhoodLife.userName}",
style: textTheme().bodyText1,
),
TextSpan(
text: " ${neighborhoodLife.location}",
),
TextSpan(
text: " 인증 ${neighborhoodLife.authCount}회",
),
],
),
),
],
),
);
}
Padding _buildWriting() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Align(
alignment: Alignment.centerLeft,
child: Text(
neighborhoodLife.content,
style: textTheme().bodyLarge,
maxLines: 3,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.start,
),
));
}
Visibility _buildImage() {
return Visibility(
visible: neighborhoodLife.contentImgUri != "",
child: Padding(
padding: EdgeInsets.only(left: 16, right: 16, bottom: 16),
child: Image.network(
neighborhoodLife.contentImgUri,
height: 200,
width: double.infinity,
fit: BoxFit.cover,
),
));
}
Padding _buildTail(int commentCount) {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
children: [
Icon(
FontAwesomeIcons.smile,
color: Colors.grey,
size: 22,
),
SizedBox(width: 8),
Text(
"공감하기",
style: TextStyle(fontSize: 16, color: Colors.black),
),
SizedBox(width: 22),
Icon(
FontAwesomeIcons.commentAlt,
color: Colors.grey,
size: 22,
),
SizedBox(width: 8),
Text(
"${"댓글쓰기"} $commentCount",
style: TextStyle(fontSize: 16, color: Colors.black),
),
],
),
);
}
}

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../models/neighborhood_life.dart';
import '../../../theme.dart';
import '../components/image_container.dart';
class LifeBody extends StatelessWidget {
final NeighborhoodLife neighborhoodLife;
const LifeBody({Key? key, required this.neighborhoodLife}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
border: Border(
bottom: BorderSide(width: 0.5, color: Color(0xFFD4D5DD)),
),
),
child: Column(
children: [
_buildTop(),
_buildWriter(),
_buildWriting(),
_buildImage(),
Divider(
height: 1,
thickness: 1,
color: Colors.grey[300],
),
_buildTail(neighborhoodLife.commentCount),
],
),
);
}
Padding _buildTop() {
return Padding(
padding: const EdgeInsets.symmetric(
vertical: 16,
horizontal: 16,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.all(4),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(Radius.circular(4)),
color: Color.fromRGBO(247, 247, 247, 1),
),
child: Text(neighborhoodLife.category, style: textTheme().displayMedium), // TODO 06수정
),
Text(
neighborhoodLife.date,
style: textTheme().displayMedium, // TODO 06수정
),
],
),
);
}
Padding _buildWriter() {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Row(
children: [
ImageContainer(
width: 30,
height: 30,
borderRadius: 15,
imageUrl: neighborhoodLife.profileImgUri,
),
Text.rich(
TextSpan(
children: [
TextSpan(text: ' ${neighborhoodLife.userName}', style: textTheme().bodyLarge), // TODO 06수정
TextSpan(text: ' ${neighborhoodLife.location}', style: textTheme().bodyMedium), // TODO 06수정
TextSpan(text: ' 인증 ${neighborhoodLife.authCount}회', style: textTheme().bodyMedium) // TODO 06수정
],
),
)
],
),
);
}
Padding _buildWriting() {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
child: Align(
alignment: Alignment.centerLeft,
child: Text(
neighborhoodLife.content,
style: textTheme().bodyLarge, // TODO 06수정
maxLines: 3,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.start,
),
),
);
}
Visibility _buildImage() {
return Visibility(
visible: neighborhoodLife.contentImgUri != '',
child: Padding(
padding: EdgeInsets.only(left: 16, right: 16, bottom: 16),
child: Image.network(
neighborhoodLife.contentImgUri,
height: 200,
width: double.infinity,
fit: BoxFit.cover,
),
),
);
}
Padding _buildTail(int commentCount) {
return Padding(
padding: const EdgeInsets.all(16),
child: Row(
children: [
Icon(
FontAwesomeIcons.smile,
color: Colors.grey,
size: 22,
),
SizedBox(width: 8),
Text(
'공감하기',
style: TextStyle(fontSize: 16, color: Colors.black),
),
SizedBox(width: 22),
Icon(
FontAwesomeIcons.commentAlt,
color: Colors.grey,
size: 22,
),
SizedBox(width: 8),
Text(
"${"댓글쓰기"} $commentCount",
style: TextStyle(fontSize: 16, color: Colors.black),
),
],
),
);
}
}
import 'package:carrot_market_ui/models/neighborhood_life.dart';
import 'package:carrot_market_ui/screens/components/appbar_preffered_size.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'life_body.dart';
import 'life_header.dart';
class NeighborhoodLifeScreen extends StatelessWidget {
const NeighborhoodLifeScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[100],
appBar: AppBar(
title: Text("동네생활"),
actions: [
IconButton(icon: Icon(CupertinoIcons.search), onPressed: (){}),
IconButton(icon: Icon(CupertinoIcons.plus_rectangle_on_rectangle), onPressed: (){}),
IconButton(icon: Icon(CupertinoIcons.bell), onPressed: (){}),
],
bottom: appBarBottomLine(),
),
body: ListView(
children: [
LifeHeader(),
Padding(padding: const EdgeInsets.only(bottom: 12.0),
child: LifeBody(
neighborhoodLife: neighborhoodLifeList[0],
),)
],
),
);
}
}

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../../models/neighborhood_life.dart';
import '../components/appbar_preffered_size.dart';
import 'life_body.dart';
import 'life_header.dart';
class NeighborhoodLifeScreen extends StatelessWidget {
const NeighborhoodLifeScreen({Key? key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[100],
appBar: AppBar(
title: Text("동네생활"),
actions: [
IconButton(icon: Icon(CupertinoIcons.search), onPressed: (){}),
IconButton(icon: Icon(CupertinoIcons.plus_rectangle_on_rectangle), onPressed: (){}),
IconButton(icon: Icon(CupertinoIcons.bell), onPressed: (){}),
],
bottom: appBarBottomLine(),
),
body: ListView.builder(
itemCount: neighborhoodLifeList.length,
itemBuilder: (context, index) {
final lifeItem = neighborhoodLifeList[index];
return Padding(
padding: const EdgeInsets.only(bottom: 12.0),
child: LifeBody(
neighborhoodLife: lifeItem,
),
);
},
),
);
}
}

Share article