user2638180
user2638180

Reputation: 1023

Cannot define setOnRefreshListener for SwipeRefreshLayout

I'm trying to assign a behavior different than the standard one when my swipelayout is refreshed:

This is my code:

 binding.refreshed = binding.refreshOtrosRequestList

        binding.refreshOtrosRequestList!!.setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener {
            [Change behavior]
                       })

These are the elements I'm using defined in the corresponding XML file:

<data>
    <variable name="refreshed" type="androidx.swiperefreshlayout.widget.SwipeRefreshLayout"/>
</data>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/refreshOtrosRequestList"
        app:onRefreshListener="@{() -> model.onRefresh(refreshed)}"
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

But the defined setOnRefreshListener never fires:

What am I doing wrong? PD: this is request, also in data in XML file:

  <data>
        <variable name="model" type="es.nscontrol.controlpresencial.viewmodels.NonWorkingDateViewModel"/>
        <variable name="refreshed" type="androidx.swiperefreshlayout.widget.SwipeRefreshLayout"/>
    </data>

Upvotes: 0

Views: 247

Answers (1)

Przemek
Przemek

Reputation: 121

What is "model"?

model.onRefresh(refreshed)

Is it somewhere defined? Additionally, it looks strange when you use databiding to store view from this layout in a variable.

Edit:

I hope you also binded this "model" to the actual variable as you did with

binding.refreshed = binding.refreshOtrosRequestList

And invoke this after you binded these variables:

binding.executePendingBindings()

Upvotes: 2

Related Questions