0
if (mLayoutManager instanceof GridLayoutManager) { 
         ((GridLayoutManager) mLayoutManager).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { 
          @Override 
          public int getSpanSize(int position) { 
           return listResultAdapter.isHeaderOrFooter(position) ? ((GridLayoutManager) mLayoutManager).getSpanCount() : 1; 
          } 
         }); 
        } 

Above Code abstürzt sagen java.lang.ClassCastException würfen android.support.v7.widget.LinearLayoutManager nichtkann nicht LinearLayoutManager zu GridLayoutManager

ich android.support.v7.widget.GridLayoutManager gegossen werden heraus unterhalb der Linie verursacht Absturz

((GridLayoutManager) mLayoutManager).getSpanCount() 

, was die Lösung Absturz zu vermeiden sein kann

mLayoutManager als LinearLayoutManager erklärt

+0

BTW, warum erklären Sie '' mLayoutManager als '' LinearLayoutManager aber es als 'GridLayoutManager verwenden'? – shhp

+0

Wie ist es möglich? – apk

+0

eigentlich habe ich versucht, das zu tun, aber es stürzte, als ich notifydataset änderte, änderte ich versuchte, gridlayoutmanager setspancount – apk

Antwort

0

Sie sollten auch die Klasse Prüfung innerhalb getSpanSize tun:

public int getSpanSize(int position) { 
    return mLayoutManager instanceof GridLayoutManager && listResultAdapter.isHeaderOrFooter(position) 
      ? ((GridLayoutManager) mLayoutManager).getSpanCount() : 1; 
} 
Verwandte Themen