【问题标题】:Constraint Layout with Data Binding is Unresponsive具有数据绑定的约束布局无响应
【发布时间】:2019-07-16 12:41:03
【问题描述】:

我面临的问题是约束布局完全没有响应。未显示边距,onCLick 处理程序不起作用。下面我附上了2张图片。看看这个。我哪里错了?需要更多代码..?我可以更新,请告诉我。

  1. 行布局类

     <?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>
    
  2. 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 { 启用 true }

没有别的

【问题讨论】:

  • 你的照片不是每个人都能看到的......它要求谷歌帐户。用 imgur 添加图片..
  • @ADM 现在看看

标签: android data-binding kotlin android-recyclerview android-databinding


【解决方案1】:

通货膨胀代码不正确。用这个

 val binding = RowLeadsClientsBinding.inflate(inflater, parent, false)

【讨论】:

  • binding.eventHandler = this@LeadClientRVAdapter 应该在 MyViewHolder 中,以便 clickListener 工作。
猜你喜欢
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多