마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Android stack이슈 [closed]

0 추천

현재 프로젝트에서 특정 부분의 프래그먼트에서만 보여주는 bottomSheet와 customToolbar가 존재합니다.

MainActivity
 

  public void showToolbarAndBottomSheet() {
        Log.d("MainActivity", "showToolbarAndBottomSheet()");
        homeToolbar.setVisibility((View.VISIBLE));
        bottomView.setVisibility(View.VISIBLE);
    }

    public void hideToolbarAndBottomSheet() {
        homeToolbar.setVisibility(View.GONE);
        bottomView.setVisibility(View.GONE);
    }

이 함수를 이용해 뷰의 가시성을 조절하려고 했습니다.

그래서 Fragment에서

  @Override
    public void onResume() {
        super.onResume();
        ((MainActivity) getActivity()).showToolbarAndBottomSheet();
        Log.d("HomeFragment", "onResume()");
    }

    @Override
    public void onPause() {
        super.onPause();
        // Toolbar and BottomSheet are hidden when HomeFragment is not visible
        ((MainActivity) getActivity()).hideToolbarAndBottomSheet();
        if (tipBanner != null) {
            tipBanner.dismiss();
        }
    }

이렇게 함수를 호출해 특정 뷰일 때는 가시성을 보이게하고 특정 뷰를 벗어나면 가시성을 안보이게 설정 했습니다.

 

하지만 프래그먼트 -> 다른 프래그먼트로 이동 -> 뒤로가기를 누를 시 가시성이 보여야하지만 보이지 않습니다.

프래그먼트 -> 다른 프래그먼트로 이동 -> 뒤로가기 -> 다른프래그먼트로 이동 -> 다시 뒤로가기 의 플로우로 진행하면 가시성이 정상적으로 작동됩니다.

stack 때문인거 같은대 기존 뷰가 보일때 이미 stack 이 쌓엿으므로 정상 작동해야되는거 아닌가요 ?
뭐가 문제일까요 ?

질문을 종료한 이유: 해결 완료 - MainActivity에서 처음 보여줄 Fragment지정하지 않앗음.
개린쓰 (680 포인트) 님이 2023년 7월 28일 질문
개린쓰님이 2023년 7월 28일 closed
...