Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report on
Developer Community or GitHub with
your current version information, steps to reproduce, and relevant error
messages or log files if you are hitting an issue that looks similar to
this resolved bug and you do not yet see a matching new report.
When the ListView.IsRefreshingProperty is bound to a true, or IsRefreshing is set to true, or ListView.BeginRefresh() is called: The space opens up for the indicator, but the space remains blank.
The indicator only shows when the listview is pulled on by a user.
Created attachment 18712 [details]
testcase project with bug
This only happens if the IsRefreshing is set during the construction call.
If I call BeginRefresh() one second after the listview is created, the indicator appears.
This is not a suitable fix for me though, I need to be able to bind the property.
Created attachment 18713 [details]
test project with hacky workaround
This is an example hack/workaround.
You can start a timer with a 1ms interval to either call BeginRefresh or bind the IsRefresingProperty to your VieModel.
I've created a simple BindableObject extension for now to act as a workaround until this bug is fixed.
public static class BindableObjectExtensions
public static void SetBindingDelayed<T>(this BindableObject obj, BindableProperty property, Expression<Func<T, object>> source)
Device.StartTimer(TimeSpan.FromMilliseconds(1), () =>
return false; //only run once
Was this a regression introduced recently? Looking at the tag, it says 2.3.3.
I've seen several other bug reports that have similar issues.
This issue exists in 184.108.40.206
Sorry if I didn't explain the bug very well. I'll try again.
The bug exactly, is that if you turn on the "is refreshing" state either in the listview's constructor, or directly after it (like in the first testcase I attached) then the space opens up for the spinner, but it doesn't actually appear.
This is only an issue on iOS.
On Android, everything appears to work as expected but I haven't tested it thoroughly.
My first impression is that UIRefreshControl is supposed to show only on user action. Any programmatic way is a hack. If XF had a hacky way of doing it previously, maybe it no longer works. Also, I've read that it behaves differently on iOS 8/9 vs 10. Which version of iOS were you testing it on?
I'm testing on iOS 10.
I'll set up a sim on 8 and 9 and come back with test results.
After testing, I found that this issue doesn't exist on iOS 9.3 and 8.4
It seems like it only happens on iOS 10.
I do not come from Swift or Obj-c so forgive me if being able to control the listview in this way isn't expected behaviour.
Take this with a grain of salt: I would argue that it's good to use built-in controls/views instead of creating secondary Activity Indicators just to do the same task.
This looks to no longer be an issue as of the latest Forms stable build on 10.3 and 11.0 sims; the indicator shows up when the application is run.