具有数据绑定的约束布局无响应
Constraint Layout with Data Binding is Unresponsive
我面临的问题是约束布局完全没有响应。不显示边距,onCLick 处理程序不工作。下面我附上了 2 张图片。看看这个。我哪里错了?需要更多代码..?我可以更新让我知道。
行布局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)
}}
有数据绑定 -
没有 -
另一点 - 我只在 Gradle -> dataBinding {
启用真
}
没有别的
Inflation 代码不正确。使用这个
val binding = RowLeadsClientsBinding.inflate(inflater, parent, false)
我面临的问题是约束布局完全没有响应。不显示边距,onCLick 处理程序不工作。下面我附上了 2 张图片。看看这个。我哪里错了?需要更多代码..?我可以更新让我知道。
行布局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) }}
有数据绑定 -
另一点 - 我只在 Gradle -> dataBinding { 启用真 }
没有别的
Inflation 代码不正确。使用这个
val binding = RowLeadsClientsBinding.inflate(inflater, parent, false)