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

  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • MkElite

    MkElite

    13 NİSAN 2012
  • Turkish Airlines

    Turkish Airl

    11 AĞUSTOS 2006