안드로이드

[안드로이드] Bottom Navigation View 숨기기/ 프래그먼트에서 Activity View Control하기(Kotlin)

디벨로펄 2022. 9. 22.
반응형

Bottom Navigation으로 Activity를 구성

문제점 : 로그인 Fragment는 bottom Navigation이 없어야 한다.

1. Activity에 NavigationView를 안보이게 하는 메서드를 추가한다.(hideBottomNavigation)

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
		...
    }


    fun hideBottomNavigation(state:Boolean){
        if(state) binding.navView.visibility = View.GONE else binding.navView.visibility=View.VISIBLE
    }
}

2. Fragment에서 적절하게 사용한다.

로그인 Fragment에서 hideBottomNavigation을 true로 설정.

class LoginFragment : Fragment() {

    private var _binding: FragmentLoginBinding? = null

    private val binding get() = _binding!!

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        ...
		
        // bottom Navigation 제거 코드.
		val mainActivity = activity as MainActivity // casting
        mainActivity.hideBottomNavigation(true)

        return root
    }
}
반응형

댓글