Untitled
Ini bagian fragmentnya, karena disini saya menggunakan navigationunknown
kotlin
4 years ago
2.9 kB
7
Indexable
package com.example.githubuser.ui import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import com.example.githubuser.adapter.ListUserAdapter import com.example.githubuser.databinding.FragmentHomeBinding import com.example.githubuser.model.UserItemResponse import com.example.githubuser.viewmodels.UserViewModel class HomeFragment : Fragment() { private var _binding: FragmentHomeBinding? = null private val binding get() = _binding!! private val userViewModel: UserViewModel by activityViewModels() private val userList = arrayListOf<UserItemResponse>() override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { _binding = FragmentHomeBinding.inflate(inflater, container, false) return binding.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val layoutManager = LinearLayoutManager(activity) binding.recyclerview.layoutManager = layoutManager val itemDecoration = DividerItemDecoration(activity, layoutManager.orientation) binding.recyclerview.addItemDecoration(itemDecoration) userViewModel.listResponse.observe(viewLifecycleOwner) { setListResponse(it) } userViewModel.isLoading.observe(viewLifecycleOwner) { showLoading(it) } } private fun setListResponse(listResponse: List<UserItemResponse>) { for (position in listResponse.indices) { userViewModel.getDetailResponse(listResponse[position].login) } userViewModel.detailResponse.observe(viewLifecycleOwner) { setDetailResponse(it) } } private fun setDetailResponse(detailResponse: UserItemResponse) { userList.add( UserItemResponse( detailResponse.followers, detailResponse.avatarUrl, detailResponse.following, detailResponse.name, detailResponse.company, detailResponse.location, detailResponse.id, detailResponse.publicRepos, detailResponse.login, detailResponse.email ) ) val adapter = ListUserAdapter(userList) binding.recyclerview.adapter = adapter } private fun showLoading(isLoading: Boolean) { binding.progressBar.visibility = if (isLoading) View.VISIBLE else View.GONE } override fun onDestroyView() { super.onDestroyView() _binding = null } }
Editor is loading...