Мое требование прост. В моем приложении есть список с сообщениями чата и значок стрелки в верхней части экрана. Новые элементы будут добавлены динамически и я хочу показать этот значок стрелки при поступлении нового сообщения, проверяя некоторые условия,Как я могу проверить, что последний элемент списка виден или нет??
1. Arrow will be shown if listview is not at bottom (ie last item is not visible).
2. Arrow will be dismissed when user scrolls listview to bottom.
3. Arrow will not be showed if listview is at bottom.
Я использовал логическое значение для проверки статуса позиции в listvew, при поступлении нового сообщения я я проверка,
if(isAtBottom){
// Adding to list
mChatMessages.add(mNewMessage);
mAdapter.setListing(mChatMessages);
scrollListViewToBottom();
}else{
mChatMessages.add(mNewMessage);
mAdapter.setListing(mChatMessages);
startArrowIndicator();
}
И когда пользователь прокручивает ListView используется следующий код,
@Override
public void onScroll(AbsListView absListView, final int firstVisibleItem,
final int visibleItemCount, final int totalItemCount) {
final int lastItem = firstVisibleItem + visibleItemCount;
if(lastItem == totalItemCount) {
stopArrowIndicator();
isAtBottom = true;
}else{
isAtBottom = false;
}
}
Но этот код не работающий .... Любая идея ..?
Проверить это один http://stackoverflow.com/a/13134100/1384010 –