1.Bắt sự kiện bên fragment
B1. Bên fragment ta tạo 1 interface
interface FragmentHomeToActivityMain{
fun onClickCategory()
fun onBackToFragment()
}
B2. override fun onAttach()
override fun onAttach(context: Context) {
super.onAttach(context)
if(context is FragmentHomeToActivityMain){
listener = context
} else {
throw RuntimeException("$context must implement FragmentHomeToActivityMain")
}
}
p/s: context ở dây là MainActivity. Chúng ta gán cho biến listener nhằm cho trình biên dịch coi listener đang nằm trong class MainActivity, để có quyền thực thi các câu lệnh được override trên MainActivity
B3. override fun onDetach()
override fun onDetach() {
super.onDetach()
listener = null
}
p/s: Khi fragment huỷ liên kết với mainActivity thì biến listener = null nhằm tiết kiệm dụng lượng bộ nhớ
B4. Bên mainActivity
Ta kết thừa interface
class MainActivity : AppCompatActivity(), fragment_home.FragmentHomeToActivityMain
đồng thời override các function thuộc interface
override fun onClickCategory() {
binding.bottomMenu.visibility = View.GONE
}
override fun onBackToFragment() {
binding.bottomMenu.visibility = View.VISIBLE
}
Lúc này các func được gọi ra nhắm thực hiện xử lý sự kiện bắt được bên fragment
Nhận xét
Đăng nhận xét