Tips/Android
[Android] Binding 사용 시 모든 요소가 아무 동작도 안할 때
DevJaewoo
2022. 2. 9. 16:24
반응형
Binding 사용 시 모든 요소가 아무 동작도 안할 때
viewBinding 사용 시 간혹 OnClick, OnCheckChange 등의 이벤트들이 하나도 동작하지 않을 떄가 있다.
binding 사용 후 binding을 통해 이벤트를 등록했으면 그걸 보여주도록 설정을 변경해야 하는데, 기존 코드를 그대로 놔둬서 오류가 발생하는 것이었다.
Activity의 경우 setContentView의 인자값을 binding.root로 변경해주면 된다.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
requestPermissions()
createNotificationChannel()
binding.contentMain.toolbar.ibToolbar.setOnClickListener {
toggleDrawerLayout(binding.root)
}
binding.navView.setNavigationItemSelectedListener(this)
setFragment(AlarmFragment())
}
Fragment의 경우 onCreateView의 return 부분을 binding.root로 변경하면 된다.
private var _binding: FragmentExampleBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentExampleBinding.inflate(inflater, container, false)
// return inflater.inflate(R.layout.fragment_example, container, false)
return binding.root
}
반응형