Reputation: 570
Problem that I'm facing is Constraint Layout is completely unresponsive. Margins are not shown, onCLick Handlers are not working. Below I've attached 2 images. Check it out. Where am I going wrong? Need more code..? I can update just let me know.
Row-Layout Class
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="lead"
type="com.goplannr.model.LeadPojo" />
<variable
name="eventHandler"
type="com.goplannr.fragment.contact.adapter.LeadClientRVAdapter" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@color/colorControlActivated"
android:onClick="@{(v) -> eventHandler.onRowItemClick(v)}">
.... got 4 items inside
</android.support.constraint.ConstraintLayout>
</layout>
RecyclerViewAdapter
class LeadClientRVAdapter (private val leadDetailsList:ArrayList<LeadPojo>) :
RecyclerView.Adapter<LeadClientRVAdapter.MyViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val inflater = LayoutInflater.from(parent.context)
val binding = RowLeadsClientsBinding.inflate(inflater)
return MyViewHolder(binding)
}
override fun getItemCount(): Int = leadDetailsList.size
override fun onBindViewHolder(holder: MyViewHolder, position: Int) = holder.bind(leadDetailsList[position])
inner class MyViewHolder(private val binding: RowLeadsClientsBinding): RecyclerView.ViewHolder(binding.root){
fun bind(item : LeadPojo){
binding.lead = item
binding.executePendingBindings()
}}
fun onRowItemClick(v: View){
v.findNavController().navigate(R.id.action_contacts_fragment_to_lead_details_fragment)
}}
With Data Binding - Without -
Another point - I only have this dependency in Gradle -> dataBinding { enabled true }
Nothing else
Upvotes: 2
Views: 931
Reputation: 837
Inflation code is incorrect. Use this
val binding = RowLeadsClientsBinding.inflate(inflater, parent, false)
Upvotes: 2