Written on
·
255
0
강의에는 없지만 웹뷰를 적용하고 이전메뉴로 돌아가는 것을 만들고 싶어요.
현재 onCreatedview 에 웹뷰가 적용되어 있는데 여기에 바인딩을 적용시키려면 어떻게 짜야 할까요???
class TalkFragment : Fragment() {
private lateinit var binding : FragmentStoreBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_store, container, false)
val webView : WebView = view.findViewById(R.id.storeWebView)
webView.loadUrl("https://www.iparimap.kr/")
binding= DataBindingUtil.inflate(inflater, R.layout.fragment_talk, container, false)
//클릭시 이동하는 곳
binding.homeTap.setOnClickListener {
it.findNavController().navigate(R.id.action_storeFragment_to_homeFragment)
}
}
Answer 1
1
맨 밑에
return view
return binding.root
두가지를 모두 사용하지 마시고, binding만 사용하시거나, view만을 사용하셔야 합니다.
다른 fragment를 참고해보시겠어요?
우선 웹뷰와 바인딩에 대한 개념을 잘 이해하지 못하신 것 같습니다.
위의 제가 바꾸라고 말씀드린 부분은 문법상의 차이입니다.
findViewById를 대신하여 binding를 사용하셨다면 binding의 문법을 따라서 적용해주시면 됩니다.
다시한번 다른 fragment를 보면서 어떻게 코드를 작성했는지 참고해보시겠어요?
코드를 이렇게 쳤는데 메뉴를 클릭하면 앱이 죽습니다.. 무엇이 잘못됐을까요?
(talktap을 치면 웹뷰를 적용한 talkFragment로 이동합니다.)
*네비게이션, 웹뷰 둘다 적용합니다.
꼭 좀 알려주세요. 부탁드려요!