I am trying to show a RecyclerView on a fragment in a TabLayout that is also a fragment. However, the RecyclerView still refuses to show up even if there is no errors. Based on information I have gathered, it should be possible for a fragment of a TabLayout to have a RecyclerView. However, I don't know if the problem lies within the fact that I built my TabLayout on a fragment causing the recyclerview to not show. I figure I must be doing something wrong and I need some help. Here is my code:
TabLayoutFragment
var viewPager = root.findViewById(R.id.viewPager) as ViewPager
var tablayout = root.findViewById(R.id.tabLayout) as TabLayout
val fragmentAdapter = FragmentAdapter(requireActivity().supportFragmentManager)
fragmentAdapter.addFragment(OpenLoansFragment(), "Active")
fragmentAdapter.addFragment(ClosedLoansFragment(), "Closed")
viewPager.adapter = fragmentAdapter
tablayout.setupWithViewPager(viewPager)
RecyclerView Fragment
private lateinit var swipeRefreshLayout:SwipeRefreshLayout
private lateinit var loanRecRcv:RecyclerView
private var list: ArrayList<LoanRecordModel> = ArrayList()
private var loanRecRcvAdapter = LoanRecRcvAdapter(list, this)
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentOpenLoansBinding.inflate(inflater, container, false)
val root: View = binding.root
return root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
list = arrayListOf(
LoanRecordModel("", "Petty Cash Loan", "12/05/2022", "Open"),
LoanRecordModel("", "Petty Cash Loan", "12/05/2022", "Open"),
LoanRecordModel("", "Petty Cash Loan", "12/05/2022", "Open"),
LoanRecordModel("", "Petty Cash Loan", "12/05/2022", "Open"),
LoanRecordModel("", "Petty Cash Loan", "12/05/2022", "Open")
)
initView()
loanRecRcv.apply{
layoutManager = LinearLayoutManager(activity)
adapter = loanRecRcvAdapter
}
}
private fun initView() {
swipeRefreshLayout = requireActivity().findViewById(R.id.swipeRefresh)
loanRecRcv = requireActivity().findViewById(R.id.loanRecRcv)
}