개발
[Android] FragmentContainerView에서 버튼 setOnClickListener 동작 안함 본문
이슈
- FragmentContainerView에서 view.findViewById를 이용한 클릭 이벤트튼 되지만, binding을 사용한 클릭 이벤트 리스너 동작을 안함.
코드수정
기존 코드(바인딩 부분쪽만)
class ListFragment : Fragment() { lateinit var binding: FragmentListBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment binding = FragmentListBinding.inflate(inflater,container, false) return inflater.inflate(R.layout.fragment_list, container, false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { binding.btnNext.setOnClickListener { Toast.makeText(activity?.applicationContext,arguments?.getString("a"), Toast.LENGTH_SHORT).show() } super.onViewCreated(view, savedInstanceState) } }
수정 코드
안드로이드 가이드 프로그먼트에서 뷰 결합 참조해서 사용
class ListFragment : Fragment() { private var _binding: FragmentListBinding? = null private val binding get() = _binding!! override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { _binding = FragmentListBinding.inflate(inflater, container, false) val view = binding.root return view } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { binding.btnNext.setOnClickListener { Toast.makeText(activity?.applicationContext,"숏ddddddddd", Toast.LENGTH_SHORT).show() } super.onViewCreated(view, savedInstanceState) } }
참고
안드로이드 가이드 프래그먼트의 뷰 결합
'Android' 카테고리의 다른 글
[Android] NavController fragment 이동시 같은 fragment가 stack에 들어가는 현상 (0) | 2021.11.21 |
---|---|
[Android] Error inflating class fragment (0) | 2021.11.21 |
[Android] DrawerLayout 적용 및 appbar toggle (0) | 2021.11.17 |
[Android]Material App bars 적용 (0) | 2021.11.17 |
Comments