Issue :
Fragment 에서 데이터 통신 및 파싱 후 Recyclerview 에 아이템을 붙여주는 작업 중 정상적으로 작동되나 , 탭을 이동 시 RecyclerView가 다시 Adapt 되면서 데이터가 다시 통신 후 파싱하는 작업을 하는 문제가 있음.
Solve : ViewModel의 observe를 씀으로서 해결
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
viewModel.Livedata.observe(viewLifecycleOwner, Observer {
if(viewModel.data!=null) {
val adapter =
RecyclerAdapter(viewModel.data, LayoutInflater.from(context))
recycler_view.adapter = adapter
recycler_view.layoutManager = LinearLayoutManager(context)
recycler_view.adapter?.notifyDataSetChanged()
(recycler_view.adapter as RecyclerAdapter).setData(it)
}
})
}
데이터를 받아오는 곳.
fun initview() {
RetrofitClient.dataservice.getdata()
.enqueue(object : retrofit2.Callback<Camco> {
override fun onFailure(call: retrofit2.Call<Camco>, t: Throwable) {
}
override fun onResponse(
call: retrofit2.Call<Camco>,
response: Response<Camco>
) {
val body = response.body()
//viewModel로 데이터를 보내줌.
if (body != null) {
viewModel.mysHomeListSetData(body)
}
}
})
}
Issue :
Fragment 에서 데이터 통신 및 파싱 후 Recyclerview 에 아이템을 붙여주는 작업 중 정상적으로 작동되나 , 탭을 이동 시 RecyclerView가 다시 Adapt 되면서 데이터가 다시 통신 후 파싱하는 작업을 하는 문제가 있음.
Solve : ViewModel의 observe를 씀으로서 해결
데이터를 받아오는 곳.