muak / CoordinatorPage

The sample of scrolled NavigationBar with ListView
4 stars 0 forks source link

RequestLayout() Improperly called when IsPullToRefresh Enabled #2

Open ChasakisD opened 5 years ago

ChasakisD commented 5 years ago

Hello @muak,

I have noticed an issue while trying to use your implementation with SwipeRefreshLayout, but while it is working i am getting a ton of warnings when the swiperefreshlayout tries to show its little circle view with the indicator.

12-13 23:22:05.811 W/View    (30257): requestLayout() improperly called by android.support.design.widget.AppBarLayout{357da3b V.E...... ......ID 0,63-1080,210 #7f08008b app:id/coordinatorAppBar} during layout: running second layout pass

I am trying to resolve this for 2 days not but nothing seems to working. Tried both X.F. 3.3, 4.0-pre, tried to implement my own SwipeRefreshLayout rather than the default ListViewRenderer's one, but getting a ton of warning there. Without the SwipeRefreshLayout, no warning!

One workaround I made was to set the ScrollingBehavior on the NavigationPageRenderer(rather than the FrameLayout on the FormsCoordinatorActivity) and the warning is gone, but there is a bit of a bug while the bar overlaps the page. There is something wrong with the behavior i think and how the X.F. processes the views.

In a pure Xamarin.Android project i tried to add SwipeToRefresh and inside of it a NestedScrollView and it worked nice without any warnings. But the same impl on Xamarin.Forms gets those warnings :(

I am trying to figure out what is triggering the second layout pass, but no luck so far...

Steps to Reproduce

Add IsPullToRefreshEnabled="True" to the ListView in your sample and try to scroll in order to refresh

Any help would be appreciated!

Thanks!