밍쯔와 안작고 안귀여운 에러들🖤
[Android/naverMap] nestedScrollview 안에 mapView/mapFragment 본문
[Android/naverMap] nestedScrollview 안에 mapView/mapFragment
밍쯔 2022. 5. 10. 10:34scrollview 안에 mapview가 움직이지 않는 문제
5/11
- 지도가 움직이지만, 상하로 움직일 경우, scrollview에 이벤트를 뺏김
🔥5/14
- mapFragment로 선언되어 있던 것이 왜인지는 모르겠지만 touchEvent로 intercept 되지 않아서,
mapFragment를 mapView로 수정해서 이벤트까지 등록하니 성공!!
코드는 아래와 같슴당
private NaverMap naverMap;
private MapView mapView;
// onCreate 안
mapView = binding.mapView;
mapView.onCreate(savedInstanceState);
--------------
// 터치 이벤트 처리
mapView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
binding.mapView.getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_DOWN:
binding.mapView.getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
binding.mapView.getParent().requestDisallowInterceptTouchEvent(false);
break;
case MotionEvent.ACTION_CANCEL:
binding.mapView.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
return binding.mapView.onTouchEvent(event);
}
});
--------------
@Override
public void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onStart() {
super.onStart();
mapView.onStart();
}
@Override
protected void onStop() {
super.onStop();
mapView.onStop();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
// 위치 및 이벤트 설정
@Override
public void onMapReady(@NonNull NaverMap naverMap) {
this.naverMap = naverMap;
CameraUpdate cameraUpdate = CameraUpdate.scrollAndZoomTo(new LatLng(_개인_DTO.getLatitude(), _개인_DTO.getLongitude()), _줌크기_);
naverMap.moveCamera(cameraUpdate);
UiSettings uiSettings = naverMap.getUiSettings();
uiSettings.setScrollGesturesEnabled(true); // 스크롤
uiSettings.setZoomGesturesEnabled(true); // 두손 줌인아웃
uiSettings.setZoomControlEnabled(false); // 줌인아웃 버튼
uiSettings.setLocationButtonEnabled(false); // 축적바
uiSettings.setScaleBarEnabled(false); // 스케일바
uiSettings.setAllGesturesEnabled(true);
}
[참고 사이트]
https://zion830.tistory.com/140
[Android/Kotlin] MapFragment in ScrollView 구현하기 (Cant scroll map vertically)
상황 설명 스크롤뷰 안에 지도가 들어갈 경우, 지도를 상하 방향으로 움직일 때 스크롤뷰 쪽의 이벤트 우선순위가 높아서 지도는 안움직이고 화면 스크롤이 됨 예제는 네이버 지도를 사용했지
zion830.tistory.com
https://devtalk.kakao.com/t/topic/89668
안드로이드 스크롤뷰 위에 카카오맵을 사용하면 지도 스크롤이 되지 않는 문제
현재 저는 스크롤뷰 (scrollView) -> 리니어레이아웃 (scrollLayout) –> 릴레이티브레이아웃 (layout_mapView) (MapView) 이런식으로 계층 구조가 이루어져 있고, 현제 맵뷰안에서 지도 화면을 움직이기 위해
devtalk.kakao.com
Til. 안드로이드 터치 우선순위 관리하기 scrollview 안에 touch 이벤트 처리
안드로이드 개발을 하다보면 Scroll기능 때문에 애를 많이 먹게 되는것 같다. ScrollView 안에 SeekBar와 같이 터치를 해야하는 위젯이 있으면 ScrollView가 SeekBar의 터치이벤트를 먹어 버린다. 그래서 이
velog.io
'Develop > Android | iOS' 카테고리의 다른 글
[Android] Retrofit2/Rxjava #re-write (0) | 2022.05.17 |
---|---|
[Android] 버튼 1개 클릭 시, 여러 버튼 생성(like 네이버) (0) | 2022.05.12 |
[Android] 특수문자, 한글, 영어 체크 (0) | 2022.05.04 |
[Android/Java/Firebase] 휴대전화 인증, 인증번호 (0) | 2022.04.28 |
[Android] addTextChangedListener 추가 후 키보드 다음 버튼 오류 (0) | 2022.04.27 |