한 페이지에서 벗어나지지 않습니다 ㅠ
482
작성한 질문수 25
그대로 따라 했는데, 이 페이지에서 벗어나 지지 않습니다. 어떻게 해야 벗어나 질까요?;
코드 하단에 있습니다.

import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
@override State<HomeScreen> createState() => HomeScreenState(); }
class HomeScreenState extends State<HomeScreen> {
static final LatLng companyLatLng = LatLng( 37.4493182,
126.6601906,
); //위도 경도 지정하기
static final CameraPosition initialPosition = CameraPosition(
target: companyLatLng,
zoom: 15, );
static final Circle circle = Circle(
circleId: CircleId('circle'),
);
@override Widget build(BuildContext context) { return Scaffold(
appBar: renderAppBar(),
body: FutureBuilder(
future: checkPermission(),
builder: (BuildContext context, AsyncSnapshot snapshot){
if(snapshot.connectionState == ConnectionState.waiting){
return Center( child: CircularProgressIndicator(),
);
}
if(snapshot.data == '위치 권한이 허가되었습니다.'){ return Column(
children: [
_CustomGoogleMap(
initialPosition: initialPosition,
),
_ChoolcheckButton(),
],
);
}
return Center(
child: Text(snapshot.data),
);
},
),
);
}
Future<String> checkPermission() async {
final isLocationEnabled = await Geolocator.isLocationServiceEnabled();
if (!isLocationEnabled) {
return '위치 서비스를 활성화 해주세요.';
}
LocationPermission checkPermission = await Geolocator.checkPermission();
if (checkPermission == LocationPermission.denied) { checkPermission = await Geolocator.requestPermission();
if (checkPermission == LocationPermission.denied) { return '위치 권한을 허가해주세요.';
}
}
if (checkPermission == LocationPermission.deniedForever) {
return '앱의 위치 권한을 세팅에서 허가해주세요.';
}
return '앱의 위치 권한이 허가되었습니다.';
}
AppBar renderAppBar() {
return AppBar(
title: Center(
child: Text( '오늘도 출근',
style: TextStyle(
color: Colors.blue,
fontWeight: FontWeight.w700,
),
),
),
backgroundColor: Colors.white,
);
}
}
class _CustomGoogleMap extends StatelessWidget { final CameraPosition initialPosition;
const _CustomGoogleMap({
required this.initialPosition,
Key? key }) : super(key: key);
@override
Widget build(BuildContext context) {
return Expanded(
flex: 2,
child: GoogleMap(
mapType: MapType.normal,
initialCameraPosition: initialPosition, myLocationEnabled: true,
myLocationButtonEnabled: false,
),
);
}
}
class ChoolcheckButton extends StatelessWidget { const ChoolcheckButton({Key? key}) : super(key: key);
@override Widget build(BuildContext context) { return Expanded( child: Text(
'출근',
),
);
}
}
답변 3
0
제공해주신 코드를 실행해봤는데 단순한 실수를 하셔서 힌트만 드리도록 하겠습니다. if문을 확인해보시고 정확한 값을 비교하고 있는지 자세히 한글자씩 봐보세요!
감사합니다.
0
선생님, 말씀대로 오타 수정하고도 결국 화면의 차이를 만드는 줄을 발견했는데요,
<정상 맵으로 보여주는 코드>
return '위치 권한이 허가 되었습니다.';
}<비정상 화면으로 보여주는 코드>
return '앱의 위치 권한이 허가 되었습니다.';
}따라서 "앱의" 라는 문구가 들어가는지에 따라 화면이 달라졌습니다. 이럴 수가 있는걸까요??
1
다행히도 달라지는게 당연합니다. 두 String은 완전 다른 값이니까요. 모든 프로그래밍 언어에서 “위치 권한이 허가 되었습니다”와 “앱의 위치 권한이 허가 되었습니다”는 다른 값으로 인식 됩니다. 점 하나가 달라도, 띄어쓰기 하나가 달라도 그렇습니다. 그렇지 않는다면 전세계 모든 서버가 무너질 것입니다. 제 다트언어 강의를 기억해보시면 string 오타의 가능성을 줄이기위해 enum 같은걸 사용하기도 합니다.
video_call 플러그인 설치후 에러 발생
0
40
1
SDK 안드로이드 설치 질문!
0
55
1
코드팩토리 디스코드 링크 다시 부탁드려요~
0
90
1
Webview를 이용해서 URL 상의 페이지 출력 불가
0
63
1
홈스크린 함수를 함축해서 main.dart에 옮기는 문제
0
51
1
플레이스토어
0
57
1
아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?
0
52
1
가이드라인 질문
0
55
0
emulator 에러 환경설정 뭐가 문제 일까요??
0
75
1
emulator 실행 오류
0
91
3
Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련
0
68
1
pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의
0
41
1
setState()를 호출하지 않으면 build가 실행 안되는 건가요?
0
51
1
video_call 플러그인 설치시 에러문제
0
61
1
children 안의 if 문에서 { } 못쓰는 이유?
0
45
1
이렇게 오류가 떠요
0
61
1
AppBar 사용했는데
0
60
2
[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다
0
54
1
StatefulWidget 실습 에러가 발생합니다.[해결완료]
0
61
1
Video Player 프로젝트에 대한 추가 질문
0
50
0
Row위젯이나 column위젯의 위치는 누가 정하나요??
0
38
1
geolocator 오류때문에 개발진행이 불가능입니다
0
59
1
API 관련 이슈
0
82
2
VoidCallback 뒤에 null 연산자 표기에 관한 질문
0
41
1






위의 화면으로 수업을 듣고 있는데, 제 화면은 아래의 화면이고 여기서 변경되지 않습니다. 