Gingerbread'da, GridView getScrollY() bazı durumlarda çalışır ve bazılarında yoktur. İşte ilk cevaba dayanan bir alternatif. satır yüksekliği ve sütun sayısı bilinmek (ve tüm satırları eşit yüksekliğe sahip olmalıdır):
public int getGridScrollY()
{
int pos, itemY = 0;
View view;
pos = getFirstVisiblePosition();
view = getChildAt(0);
if(view != null)
itemY = view.getTop();
return YFromPos(pos) - itemY;
}
private int YFromPos(int pos)
{
int row = pos/m_numColumns;
if(pos - row * m_numColumns > 0)
++row;
return row * m_rowHeight;
}
ilk cevap da bir GridView piksel-kaydırmak için nasıl iyi bir ipucu verir. İşte scrollTo (0, scrollY) bir GridView eşdeğer kayar genelleştirilmiş bir çözümdür:
public void scrollGridToY(int scrollY)
{
int row, off, oldOff, oldY, item;
// calc old offset:
oldY = getScrollY(); // getGridScrollY() will not work here
row = oldY/m_rowHeight;
oldOff = oldY - row * m_rowHeight;
// calc new offset and item:
row = scrollY/m_rowHeight;
off = scrollY - row * m_rowHeight;
item = row * m_numColumns;
setSelection(item);
scrollBy(0, off - oldOff);
}
fonksiyonları bir subclassed GridView içine uygulanır, ancak kolayca harici olarak kaydedildi edilebilir.
konteyner hangisi temsil eder? lütfen söyle bana –
Belirsiz bir belleğimden, bu bir kopyala/yapıştır hatasıdır ve mGrid olmalıdır. – Christoph
@SalmanAşağı öğeleri içeren görünümü, mGrid'i deneyin, aksi halde –