BottomNavigationBar 질문
219
작성한 질문수 30
검색 방법이 잘못된건지 모르지만 구글에 검색해도 해결법이 나오지않아 질문 올립니다.
bottomNavagtionBar:
GestureDetector(
onTap: (){
Navigator.push(context, MaterialPageRoute(builder: (context) => CommentRegisterScreen( id: widget.id)));
},
child: TRoundedContainer(
height: 60,
backgroundColor: const Color(0xffF8F8FA),
padding: const EdgeInsets.all(TSizes.defalutSpace),
radius: 0,
child: Text(
'댓글을 남겨보세요.',
style: Theme.of(context).textTheme.bodyMedium!.copyWith(color: Colors.grey),
),
),
),
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(TSizes.defalutSpace),
child: Column(
children: [
const SizedBox(height: TSizes.spaceBtwItems),
SizedBox(
height: MediaQuery.of(context).size.height,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: PaginationListViewV2(
model: state,
id: widget.id,
provider: commentProvider(widget.id),
itemBuilder: <Comment>(_,index,comment){
if(index == 0){
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
/// 제목
Text(state.title, style: Theme.of(context).textTheme.headlineMedium),
const SizedBox(height: TSizes.spaceBtwItems),
/// 닉네임
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const TRoundedImage(
width: 24,
height: 24,
fit: BoxFit.fill,
imageUrl: 'asset/img/no_image.png',
borderRadius: 100,
),
const SizedBox(width: TSizes.sm),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
state.creator,
style: Theme.of(context).textTheme.bodyLarge,
),
],
),
],
),
const SizedBox(height: TSizes.spaceBtwItems),
/// 날짜, 좋아요
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
state.createDate.split("T")[0],
style: Theme.of(context).textTheme.bodyMedium!.copyWith(color: Colors.grey),
),
GestureDetector(
onTap: button.disable==false ? () async {
//버튼 비활성화
await button.change();
await check == -1
? ref.read(communityProvider.notifier).clickFavorite(widget.id)
: ref.read(communityProvider.notifier).downFavorite(widget.id);
await ref.read(favoriteProvider.notifier).updateFavorites(widget.id);
//버튼 활성화
await button.change();
} : null,
child: check == -1
? TRoundedContainer(
showBorder: true,
padding: const EdgeInsets.all(TSizes.sm),
borderColor: Colors.redAccent,
radius: 10,
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'좋아요',
style: Theme.of(context).textTheme.labelMedium!.copyWith(color: Colors.redAccent),
),
const SizedBox(width: TSizes.xs),
Text(
state.favorite.toString(),
style: Theme.of(context).textTheme.labelMedium!.copyWith(color: Colors.redAccent),
),
],
),
)
: TRoundedContainer(
padding: const EdgeInsets.all(TSizes.sm),
backgroundColor: Colors.redAccent,
radius: 10,
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
child: SizedBox(
height: 120,
child: ListView.separated(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemCount: imgs.length,
separatorBuilder: (_, __) {
return const SizedBox(width: TSizes.spaceBtwItems / 2);
},
itemBuilder: (_, int index) {
return TRoundedImage(
imageUrl: imgs[index].toString().trim(),
width: 120,
height: 120,
fit: BoxFit.fill,
borderRadius: 12.0,
isNetworkImage: true,
);
},
),
),
),
],
)
: const SizedBox(),
const SizedBox(height: TSizes.spaceBtwSections),
/// 글 내용
Text(
state.content.trim(),
style: Theme.of(context).textTheme.bodyMedium!.copyWith(height: 1.5),
),
/// 댓글 0이 아닐 경우
Row(
children: [
Text('댓글', style: Theme.of(context).textTheme.bodySmall),
const SizedBox(width: TSizes.spaceBtwItems / 2),
Text(state.commentCnt.toString(), style: Theme.of(context).textTheme.bodySmall),
],
),
const SizedBox(height: TSizes.spaceBtwItems),
CommentCard(
comment:comment,
recomments:comment.commentList,
board_id: widget.id
)
],
);
}
return CommentCard(
comment:comment,
recomments:comment.commentList,
board_id: widget.id
);
}),
),
Container(
height: 210
)
]
),
),
// Center(child: Text('첫 댓글을 남겨주세요.', style: Theme.of(context).textTheme.bodySmall)),
],
),
),
),위 코드와 같이 BottomNavigationBar와 SinglechildScrollView를 같이 사용하고 있습니다. 가장 하단의
Container(
height: 210
)위 코드를 넣어주지 않을 시 화면 스크롤이 모두 안되고 짤리는 현상이 발생합니다. 혹시 이러한 경험이 있어 해결방법이 있다면 알려주시면 감사하겠습니다.
답변 1
Isar 마지막 업데이트는 2년전입니다.
0
31
0
FlutterSecureStorage 질문
0
32
0
Dio onError Interceptor 만드는 부분에 질문이 있습니다.
0
80
2
관리자 기능에 대한 질문
0
100
2
part 'restaurant_model.g.dart';
0
92
1
36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.
0
56
2
2번 반환 상황 관련 질문
0
61
2
riverpod 3.0
0
140
2
Asset folder??
0
83
2
디자이너와 협업 시 프레임 크기 설정 관련 질문
0
114
2
FutureProvider, StateNotifierProvider 선택 기준
0
70
2
컴포넌트 모델화
0
64
2
쿼리 파라미터
0
84
2
화면 안보임
0
68
2
PaginationListView
0
54
1
강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.
0
103
2
프로토타입이미지
0
62
2
여러 객체를 상태 관리하는 방법에 대한 질문
0
85
2
장바구니 결제하기 응답이 500이 옵니다.
0
105
2
removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?
0
67
2
이 두가지는 완전히 동일한 기능인가요?
0
106
3
내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...
0
77
2
_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?
0
86
2
코딩 작성 순서 관련 질문
0
88
2





