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

  • 07cadikiz07

    07cadikiz07

    17 EKİM 2007
  • GFX Tutorials

    GFX Tutorial

    12 AĞUSTOS 2013
  • max2sims2

    max2sims2

    19 Kasım 2008