NOW OR NEVER

[Android] Fragment에서의 toolbar 내 뒤로 가기 버튼 구현 본문

Android

[Android] Fragment에서의 toolbar 내 뒤로 가기 버튼 구현

LAURA 2023. 7. 6. 15:34
반응형

Fragment에서 toolbar 뒤로 가기 버튼 구현

  • 목표 : toolbar 왼쪽에 뒤로가기 아이콘을 배치
  • 문제 : toolbar에 메뉴아이콘을 사용해서 적용시키면 오른쪽으로만 배치
  • 시도 방법 1: tool bar 객체를 actionbar로 만들어서 왼쪽에 뒤로 가기 버튼을 만들기
    • 실패 이유 : setSupportActionBar 메서드로  toolbar를 actionbar로 대체 하여 setDisplayHomeAsUpEnabled(true)을 이용하여 네비게이션 버튼을 배치하려 했으나 기존 메뉴(res 내 메뉴 파일로 만든 메뉴)인 저장버튼이 같이 뜨지 않는 현상이 계속해서 발생하여 실패하였다.
    • 원인을 찾아 본 결과 해당 메서드를 쓴 분들의 코드는 fragment를 사용하지 않고 activity를 이용해 화면전환이 이루어지는 것을 확인 하였고 다른 방법을 찾아보기로 했다.
  • 시도 방법 2 : setNavigationIcon으로 뒤로 가기 버튼을 활성(성공)
    • 위 실패를 바탕으로 다른 검색어로 검색한 결과 fragment에서 navigation 버튼을 구현한 사례를 찾을 수 있었다.
    • 해당 방법으로 내 코드에 맞게 작성한 결과 원하는 대로 왼쪽에 네비게이션 버튼, 오른 쪽엔 메뉴파일로 구성한 메뉴 아이콘들이 뜨게 할 수 있었다. 코드와 출력 결과는 아래에서 볼 수 있다.

구현 결과

 

toolbar아이디.run {
    title = "toolbar 제목"

    // 뒤로가기 버튼 활성화
    setNavigationIcon(R.drawable.baseline_arrow_back_24)
    setNavigationOnClickListener {
        // 네비게이션 아이콘 클릭 시 적용할 동작
    }
}

 

 

 

프래그먼트 간의 이동& 플래그먼트 toolbar

액티비티의 이동은 Intent로 하듯 Fragment는 FragmentManager를 이용하여 움직인다commit() 빼먹지 말기!!!.addToBackStack(null)을 해주면 현재 프래그먼트는 스택에서 지운다플래그먼트에선 supportAction 을 쓰는

velog.io

 

Drawable 폴더 내에 뒤로 가기 아이콘이 존재하지 않는 현상 해결

 

Android Studio에서 머티리얼 아이콘 쉽게 사용하기

머티리얼 디자인 아이콘 Resources Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences. material.io 깔끔하고.. thinking-face.tist

thinking-face.tistory.com

 

Comments