@Override public int getFirstVisiblePosition() { return mListView.getFirstVisiblePosition(); } }
public View getViewByPosition(int pos, ListView listView) { final int firstListItemPosition = listView.getFirstVisiblePosition(); final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1; if (pos < firstListItemPosition || pos > lastListItemPosition ) { return listView.getAdapter().getView(pos, null, listView); } else { final int childIndex = pos - firstListItemPosition; return listView.getChildAt(childIndex); } }
public static int getScrollY(ListView lv) { View c = lv.getChildAt(0); if (c == null) { return 0; } int firstVisiblePosition = lv.getFirstVisiblePosition(); int top = c.getTop(); int scrollY = -top + firstVisiblePosition * c.getHeight(); return scrollY; }
@Override boolean isShownInList(ListView list, int pos) { return pos >= list.getFirstVisiblePosition() && pos <= list.getLastVisiblePosition(); }
private int calculateScrollYList() { View c = mListView.getChildAt(0); if (c == null) { return 0; } //TODO support more than 1 header? int firstVisiblePosition = mListView.getFirstVisiblePosition(); int top = c.getTop(); int headerHeight = 0; if (firstVisiblePosition >= 1) { //TODO >= number of header headerHeight = mHeightHeader; } return -top + firstVisiblePosition * c.getHeight() + headerHeight; }
private int mLastFirstVisibleItem; private boolean mIsScrollingUp; public void onScrollStateChanged(AbsListView view, int scrollState) { final ListView lw = getListView(); if (view.getId() == lw.getId()) { final int currentFirstVisibleItem = lw.getFirstVisiblePosition(); if (currentFirstVisibleItem > mLastFirstVisibleItem) { mIsScrollingUp = false; } else if (currentFirstVisibleItem < mLastFirstVisibleItem) { mIsScrollingUp = true; } mLastFirstVisibleItem = currentFirstVisibleItem; } }
setOnScrollListener(new OnScrollListener(){ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub } public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub final ListView lw = getListView(); if(scrollState == 0) Log.i("a", "scrolling stopped..."); if (view.getId() == lw.getId()) { final int currentFirstVisibleItem = lw.getFirstVisiblePosition(); if (currentFirstVisibleItem > mLastFirstVisibleItem) { mIsScrollingUp = false; Log.i("a", "scrolling down..."); } else if (currentFirstVisibleItem < mLastFirstVisibleItem) { mIsScrollingUp = true; Log.i("a", "scrolling up..."); } mLastFirstVisibleItem = currentFirstVisibleItem; } } });
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ((SwipeLayout)(mListView.getChildAt(position - mListView.getFirstVisiblePosition()))).open(true); } });
public View getViewByPosition(int position, ListView listView) { final int firstListItemPosition = listView.getFirstVisiblePosition(); final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1; if (position < firstListItemPosition || position > lastListItemPosition ) { return listView.getAdapter().getView(position, null, listView); } else { final int childIndex = position - firstListItemPosition; return listView.getChildAt(childIndex); } }
ListView list = getListView(); int start = list.getFirstVisiblePosition(); for(int i=start, j=list.getLastVisiblePosition();i<=j;i++) if(target==list.getItemAtPosition(i)){ View view = list.getChildAt(i-start); list.getAdapter().getView(i, view, list); break; }
private void reprioritizeDownloads() { int lastVisibleItem = listView.getLastVisiblePosition(); if (lastVisibleItem >= 0) { int firstVisibleItem = listView.getFirstVisiblePosition(); adapter.prioritizeViewRange(firstVisibleItem, lastVisibleItem, PROFILE_PICTURE_PREFETCH_BUFFER); } }
ListView list = getListView(); int start = list.getFirstVisiblePosition(); for(int i=start, j=list.getLastVisiblePosition();i<=j;i++) if(target==list.getItemAtPosition(i)){ View view = list.getChildAt(i-start); list.getAdapter().getView(i, view, list); break; }
@Override public View getViewAt(int position) { View itemView = list.getChildAt(position - list.getFirstVisiblePosition()); return itemView == null ? null : ListAdapter.getImageView(itemView); } };
@Override public void run() { if (lv == null) return; synchronized (this) { int start = lv.getFirstVisiblePosition(); int end = Math.min(lv.getLastVisiblePosition(), list.size()); for (int i = start; i <= end; i++) if (target == list.get(i)) { View view = lv.getChildAt(i - start); getView(i, view, lv); break; } } } });
public void onMoveUp() { int currentPosition = listView.getSelectedItemPosition(); if (currentPosition == AdapterView.INVALID_POSITION || listView.isInTouchMode()) { currentPosition = listView.getFirstVisiblePosition(); } if (currentPosition > 0) { listView.setSelection(currentPosition - 1); } }
public void onMoveDown() { int currentPosition = listView.getSelectedItemPosition(); if (currentPosition == AdapterView.INVALID_POSITION || listView.isInTouchMode()) { currentPosition = listView.getFirstVisiblePosition(); } if (currentPosition < listView.getCount()) { listView.setSelection(currentPosition + 1); } }
View firstChild = lv.getChildAt(0); return lv.getFirstVisiblePosition() * firstChild.getHeight() - firstChild.getTop(); } else { View lastChild = lv.getChildAt(lv.getChildCount() - 1);
/** * Turn off Multi-Select Mode and return to normal state */ private void endMultiSelectMode() { mCheckedCardPositions.clear(); mInMultiSelectMode = false; // If view which was originally selected when entering multi-select is visible then maintain its position View view = mCardsListView.getChildAt(mLastSelectedPosition - mCardsListView.getFirstVisiblePosition()); if (view != null) { recenterListView(view); } // update adapter to remove check boxes mCardsAdapter.notifyDataSetChanged(); // update action bar supportInvalidateOptionsMenu(); mActionBarSpinner.setVisibility(View.VISIBLE); mActionBarTitle.setVisibility(View.GONE); } }
private void openMessageAtPosition(int position) { // Scroll message into view if necessary int listViewPosition = adapterToListViewPosition(position); if (listViewPosition != AdapterView.INVALID_POSITION && (listViewPosition < listView.getFirstVisiblePosition() || listViewPosition > listView.getLastVisiblePosition())) { listView.setSelection(listViewPosition); } MessageReference ref = getReferenceForPosition(position); // For some reason the listView.setSelection() above won't do anything when we call // onOpenMessage() (and consequently adapter.notifyDataSetChanged()) right away. So we // defer the call using MessageListHandler. handler.openMessage(ref); }
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // Shortcuts that work no matter what is selected if (K9.useVolumeKeysForListNavigationEnabled() && (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)) { final ListView listView = getListView(); int currentPosition = listView.getSelectedItemPosition(); if (currentPosition == AdapterView.INVALID_POSITION || listView.isInTouchMode()) { currentPosition = listView.getFirstVisiblePosition(); } if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && currentPosition > 0) { listView.setSelection(currentPosition - 1); } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && currentPosition < listView.getCount()) { listView.setSelection(currentPosition + 1); } return true; } return super.onKeyDown(keyCode, event); }