etsy/AndroidStaggeredGrid

When w,h =0, onSizeChanged should not be continued...

kyungin-park opened this issue · 1 comments

I wanted to add this StaggeredGridView in PullToRefresh library,
but I failed it because onSizeChanged is called first while creating refreshable view (StaggeredGridView) on PullToRefresh.
And then onMeasure is called.
onMeasure can not remake mColumnLefts since onSizeChanged has already made mColumnLefts, mColumnBottoms, mColumnTops, etc even though w and h was 0.

So,

StaggeredGridView.java

@Override
protected void onSizeChanged(int w, int h) {
    super.onSizeChanged(w, h);

///////////////// This kind of code is needed.
    if(w <= 0 || h <= 0) {
        return;
    }

Please consider this.
Thank you a lot for your great work~~

I had a similar issue on the Kindle Fire with the options bar along the right edge of the screen. The layout calculations were getting calculated initially using the whole screen width of 1280px, then again with (screen width - option bar width). I was able to fix this issue by re-calculating the StaggeredGridView's mColumnLefts if the mColumnWidth had changed. See #179