storeTap에 네비게이션 바인딩 적용하는 방법좀 알려주세요
269
작성한 질문수 37
강의에는 없지만 웹뷰를 적용하고 이전메뉴로 돌아가는 것을 만들고 싶어요.
현재 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)
}
}
답변 1
1
Android View에 대한 접근 1-6이라고 유튜브에 영상을 올려놨습니다
참고해보시겠어요?
https://www.youtube.com/watch?v=ADYuTeFB9Lo&t=22s
0
코드를 이렇게 쳤는데 메뉴를 클릭하면 앱이 죽습니다.. 무엇이 잘못됐을까요?
(talktap을 치면 웹뷰를 적용한 talkFragment로 이동합니다.)
*네비게이션, 웹뷰 둘다 적용합니다.
꼭 좀 알려주세요. 부탁드려요!
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_talk, container, false)
binding.bookmarkTap.setOnClickListener {
it.findNavController().navigate(R.id.action_talkFragment_to_bookmarkFragment)
}
binding.storeTap.setOnClickListener {
it.findNavController().navigate(R.id.action_talkFragment_to_storeFragment)
}
binding.homeTap.setOnClickListener {
it.findNavController().navigate(R.id.action_talkFragment_to_homeFragment)
}
val WebView: WebView = view.findViewById(R.id.storeWebView)
WebView.webViewClient = WebViewClient()
WebView.loadUrl("https://www.inflearn.com/")
// return inflater.inflate(R.layout.fragment_talk, container, false)
return view
return binding.root
}
}
0
맨 밑에
return view
return binding.root두가지를 모두 사용하지 마시고, binding만 사용하시거나, view만을 사용하셔야 합니다.
다른 fragment를 참고해보시겠어요?
0
우선 웹뷰와 바인딩에 대한 개념을 잘 이해하지 못하신 것 같습니다.
위의 제가 바꾸라고 말씀드린 부분은 문법상의 차이입니다.
findViewById를 대신하여 binding를 사용하셨다면 binding의 문법을 따라서 적용해주시면 됩니다.
다시한번 다른 fragment를 보면서 어떻게 코드를 작성했는지 참고해보시겠어요?
이미지가 기본이미지인지 확인
0
143
1
NavController error 발생
0
156
1
fragment 생성하고 메인에서 불러왔는데 안뜹니다.
0
151
2
67강 댓글
0
113
2
7강 데이터바인딩 에러
0
129
2
Firebase 스토리지 유료화 문제
1
309
2
게시글 이미지가 파이어베이스에 저장되지 않습니다.
0
192
2
AVD 갤러리에 이미지 저장 안되는 문제
0
257
2
이미지 받아오는 방법?
0
213
2
회원탈퇴 기능을 추가하려고 합니다.
0
198
2
상태바 질문 드립니다.
0
120
1
섹션2 인트로 페이지 꾸미기 질문 드립니다.
0
124
1
게시판 글을 길게 쓸경우
0
131
2
로그인 로그아웃
0
188
2
갤럭시 연결시 게시판에 업로드한 사진이 보이지 않아요.
0
222
2
웹뷰 AVD 실행안됨
0
201
1
자막켜기가 안되요 ㅜ.ㅜ
1
199
1
리사이클러뷰, 그리드레이아웃 오류
0
194
2
리사이클러뷰 오류 해결 방법이 궁금합니다.
0
204
1
firebase 스마트폰으로 연결이 안되는데 원인이 있을까요
0
274
2
안드로이드 스튜디오 게시글 이미지 업로드 유무
0
230
1
firebase 설정 오류
0
312
2
홈 화면 커뮤니티
0
183
1
게시판 글 읽기
0
247
2





