Как узнать, отображается ли последняя строка ListView?

Я знаю, как проверить, видима ли последняя строка ListView. Однако видимость не гарантирует, что строка отображается полностью. Как проверить, полностью ли отображается последняя строка?

Решение состоит в том, чтобы сравнить высоту ListView с нижней частью нижнего колонтитула.

public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) { if(arg1 + arg2 == arg3) //If last row is visible. In this case, the last row is the footer. { if(footer != null) //footer is a variable referencing the footer view of the ListView. You need to initialize this onCreate { if(listView.getHeight() == footer.getBottom()) //Check if the whole footer is visible. doThisMethod(); } } } 

В интересах других нижний колонтитул – это в основном представление, которое я добавил в ListView через addFooterView . R.layout.footer – это макет для R.layout.footer колонтитула. Ниже приведен пример кода о том, как инициализировать нижний колонтитул и добавить его в ListView :

 View footer; //This is a global variable. .... //Inside onCreate or any method where you initialize your layouts footer = getLayoutInflater().inflate(R.layout.footer, null); listView.addFooterView(footer); 

Я бы попробовал что-то вроде (не тестировалось):

 if (listView.getScrollY() == listView.getMaxScrollAmount()) { // ... } 
Intereting Posts