SORU
2 Kasım 2008, Pazar


Android: bir liste Görünümü çocuk görünümleri Erişim

Görüntülenen bir liste içinde bir öğenin piksel konumunu öğrenmek için ListView kullanma ihtiyacım var. Eğer bir tane de ben alayım gibi görünüyorTextViewve sonra getTop() kullanın ama ListView bir çocuk bir görünüm elde etmek için nasıl çözemiyorum.

Güncelleme:ViewGroup çocukları ListView için listedeki öğeleri ile 1-1 bağdaşmıyor. Bunun yerine, ViewGroup'nin çocukları tarafından görünen bu görüşlere karşılık şu anda. getChildAt() ViewGroup dahili bir dizin üzerinde çalışır ve mutlaka ListView kullanan listedeki konumu ile bir ilgisi yok.

CEVAP
20 NİSAN 2010, Salı


Bakın: Android ListView: get data index of visible item ve Ayak parçası ile birleştirmek gibi bir şey verebilir yukarıda cevabı:

int wantedPosition = 10; // Whatever position you're looking for
int firstPosition = listView.getFirstVisiblePosition() - listView.getHeaderViewsCount(); // This is the same as child #0
int wantedChild = wantedPosition - firstPosition;
// Say, first visible position is 8, you want position 10, wantedChild will now be 2
// So that means your view is child #2 in the ViewGroup:
if (wantedChild < 0 || wantedChild >= listView.getChildCount()) {
  Log.w(TAG, "Unable to get view for desired position, because it's not being displayed on screen.");
  return;
}
// Could also check if wantedPosition is between listView.getFirstVisiblePosition() and listView.getLastVisiblePosition() instead.
View wantedView = listView.getChildAt(wantedChild);

Yararı bir performans isabet sürebilir Liste Görünümü çocukları, üzerinden yineleme değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChannelRichard

    ChannelRicha

    7 Kasım 2008
  • jkimisyellow...ish

    jkimisyellow

    8 Temmuz 2009
  • Sam Kear

    Sam Kear

    14 Temmuz 2007