Android: ребенок Доступа просматривает от ListView

107
задан N J 6 July 2015 в 09:00
поделиться

3 ответа

См.: Android ListView: получить индекс данных видимого элемента и объединить его с частью ответа Feet выше, можно даст вам что-то вроде:

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);

Преимущество состоит в том, что вы не выполняете итерацию по дочерним элементам ListView, что может снизить производительность.

216
ответ дан 24 November 2019 в 03:39
поделиться

Быстрый поиск документов для класса ListView поднял getChildCount () и getChildAt () методы, наследованные от ViewGroup. Можно ли выполнить итерации через них использующий их? Я не уверен, но это стоит попытки.

Найденный им здесь

6
ответ дан Feet 24 November 2019 в 03:39
поделиться

Это предполагает знание положения элемента в ListView:

  View element = listView.getListAdapter().getView(position, null, null);

Тогда необходимо быть в состоянии назвать getLeft () и getTop () для определения элементов на экранном положении.

-9
ответ дан jasonhudgins 24 November 2019 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: