Java Code Examples for android.widget.ListView#getFirstVisiblePosition()
The following examples show how to use
android.widget.ListView#getFirstVisiblePosition() .
These examples are extracted from open source projects.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: Dashchan File: ListPosition.java License: Apache License 2.0 | 6 votes |
public static ListPosition obtain(ListView listView) { int position = listView.getFirstVisiblePosition(); int y = 0; Rect rect = new Rect(); int paddingTop = listView.getPaddingTop(), paddingLeft = listView.getPaddingLeft(); for (int i = 0, count = listView.getChildCount(); i < count; i++) { View view = listView.getChildAt(i); view.getHitRect(rect); if (rect.contains(paddingLeft, paddingTop)) { position += i; y = rect.top - paddingTop; break; } } return new ListPosition(position, y); }
Example 2
Source Project: edslite File: FsBrowserRecord.java License: GNU General Public License v2.0 | 6 votes |
public static RowViewInfo getCurrentRowViewInfo(FileListViewFragment host, Object item) { if(host == null || host.isRemoving() || !host.isResumed()) return null; ListView list = host.getListView(); if(list == null) return null; int start = list.getFirstVisiblePosition(); for(int i=start, j=list.getLastVisiblePosition();i<=j;i++) if(j<list.getCount() && item == list.getItemAtPosition(i)) { RowViewInfo rvi = new RowViewInfo(); rvi.view = list.getChildAt(i-start); rvi.position = i; rvi.listView = list; return rvi; } return null; }
Example 3
Source Project: Chorus-RF-Laptimer File: PilotsSetupFragment.java License: MIT License | 6 votes |
public void updatePilotNames() { ListView mListView = (ListView)mRootView.findViewById(R.id.lvPilots); int count = AppState.getInstance().deviceStates.size(); int firstVisibleItemPos = mListView.getFirstVisiblePosition(); int lastVisibleItemPos = mListView.getLastVisiblePosition(); // detect possible faulty edge cases if (firstVisibleItemPos > lastVisibleItemPos || firstVisibleItemPos < 0 || lastVisibleItemPos > count - 1 ) return; // update only visible list items for (int i = firstVisibleItemPos; i <= lastVisibleItemPos; i++) { // children enumeration starts with zero View convertView = mListView.getChildAt(i - firstVisibleItemPos); if (convertView != null) { EditText pilotName = (EditText) convertView.findViewById(R.id.editPilotName); String curPilotName = AppState.getInstance().deviceStates.get(i).pilotName; pilotName.setText(curPilotName); } } }
Example 4
Source Project: 4pdaClient-plus File: BaseExpandableListFragment.java License: Apache License 2.0 | 6 votes |
@Override public boolean dispatchKeyEvent(KeyEvent event) { if (!Preferences.Lists.getScrollByButtons()) return false; int action = event.getAction(); ListView scrollView = getListView(); int visibleItemsCount = scrollView.getLastVisiblePosition() - scrollView.getFirstVisiblePosition(); int keyCode = event.getKeyCode(); if(Preferences.System.isScrollUpButton(keyCode)){ if (action == KeyEvent.ACTION_DOWN) scrollView.setSelection(Math.max(scrollView.getFirstVisiblePosition() - visibleItemsCount, 0)); return true;// true надо обязательно возвращать даже если не ACTION_DOWN иначе звук нажатия } if(Preferences.System.isScrollDownButton(keyCode)){ if (action == KeyEvent.ACTION_DOWN) scrollView.setSelection(Math.min(scrollView.getLastVisiblePosition(), scrollView.getCount() - 1)); return true;// true надо обязательно возвращать даже если не ACTION_DOWN иначе звук нажатия } return false; }
Example 5
Source Project: APDE File: GitHistoryActivity.java License: GNU General Public License v2.0 | 6 votes |
public void selectItem(int num) { final ListView commitList = (ListView) getView().findViewById(R.id.git_history_commit_list); selectedItem = num; int selection = num - commitList.getFirstVisiblePosition(); //Keep the selected commit on screen... with a little bit of breathing room if (num < commitList.getFirstVisiblePosition() + 2) { commitList.setSelection(num == 0 ? num : num - 1); } else if (num > commitList.getLastVisiblePosition() - 2) { commitList.setSelection(num == commitList.getCount() - 1 ? num : num + 1); } for (int i = 0; i < commitList.getCount(); i ++) { View child = commitList.getChildAt(i); if (child != null) { child.setBackgroundColor(selection == i ? getResources().getColor(R.color.holo_select) : getResources().getColor(android.R.color.transparent)); } } }
Example 6
Source Project: NIM_Android_UIKit File: ListViewUtil.java License: MIT License | 5 votes |
public static Object getViewHolderByIndex(ListView listView, int index) { int firstVisibleFeedPosition = listView.getFirstVisiblePosition() - listView.getHeaderViewsCount(); int lastVisibleFeedPosition = listView.getLastVisiblePosition() - listView.getHeaderViewsCount(); //只有获取可见区域的 if (index >= firstVisibleFeedPosition && index <= lastVisibleFeedPosition) { View view = listView.getChildAt(index - firstVisibleFeedPosition); Object tag = view.getTag(); return tag; } else { return null; } }
Example 7
Source Project: easy-guide-android File: ListViewActivity.java License: Apache License 2.0 | 5 votes |
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 null; } else { final int childIndex = pos - firstListItemPosition; return listView.getChildAt(childIndex); } }
Example 8
Source Project: trekarta File: DataList.java License: GNU General Public License v3.0 | 5 votes |
@Override public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { ListView listView = getListView(); int count = listView.getCheckedItemCount(); mode.setTitle(getResources().getQuantityString(R.plurals.itemsSelected, count, count)); // Update (redraw) list item view int start = listView.getFirstVisiblePosition(); for (int i = start, j = listView.getLastVisiblePosition(); i <= j; i++) { if (position == i) { View view = listView.getChildAt(i - start); listView.getAdapter().getView(i, view, listView); break; } } }
Example 9
Source Project: adt-leanback-support File: ListViewAutoScrollHelper.java License: Apache License 2.0 | 5 votes |
@Override public boolean canTargetScrollVertically(int direction) { final ListView target = mTarget; final int itemCount = target.getCount(); if (itemCount == 0) { return false; } final int childCount = target.getChildCount(); final int firstPosition = target.getFirstVisiblePosition(); final int lastPosition = firstPosition + childCount; if (direction > 0) { // Are we already showing the entire last item? if (lastPosition >= itemCount) { final View lastView = target.getChildAt(childCount - 1); if (lastView.getBottom() <= target.getHeight()) { return false; } } } else if (direction < 0) { // Are we already showing the entire first item? if (firstPosition <= 0) { final View firstView = target.getChildAt(0); if (firstView.getTop() >= 0) { return false; } } } else { // The behavior for direction 0 is undefined and we can return // whatever we want. return false; } return true; }
Example 10
Source Project: Onosendai File: ScrollState.java License: Apache License 2.0 | 5 votes |
public static ScrollState from (final ListView lv, final ScrollIndicator scrollIndicator, final ScrollDirection scrollDirection) { final int index = lv.getFirstVisiblePosition(); final View v = lv.getChildAt(0); final int top = (v == null) ? 0 : v.getTop(); final long itemId = lv.getAdapter().getItemId(index); if (itemId <= 0) return null; long time = ((TweetListCursorAdapter) lv.getAdapter()).getItemTime(index); if (time < 0L) time = 0L; return new ScrollState(itemId, top, time, scrollIndicator.getUnreadTime(), scrollDirection); }
Example 11
Source Project: physical-web File: SwipeRefreshWidget.java License: Apache License 2.0 | 5 votes |
@Override public boolean canChildScrollUp() { // The real child maps cares about is the list, so check if that can scroll. ListView target = (ListView) findViewById(android.R.id.list); return target.getChildCount() > 0 && (target.getFirstVisiblePosition() > 0 || target.getChildAt(0).getTop() < target.getPaddingTop()); }
Example 12
Source Project: AOSP-Kayboard-7.1.2 File: WordListPreference.java License: Apache License 2.0 | 5 votes |
void onWordListClicked(final View v) { // Note : v is the preference view final ViewParent parent = v.getParent(); // Just in case something changed in the framework, test for the concrete class if (!(parent instanceof ListView)) return; final ListView listView = (ListView)parent; final int indexToOpen; // Close all first, we'll open back any item that needs to be open. final boolean wasOpen = mInterfaceState.isOpen(mWordlistId); mInterfaceState.closeAll(); if (wasOpen) { // This button being shown. Take note that we don't want to open any button in the // loop below. indexToOpen = -1; } else { // This button was not being shown. Open it, and remember the index of this // child as the one to open in the following loop. mInterfaceState.setOpen(mWordlistId, mStatus); indexToOpen = listView.indexOfChild(v); } final int lastDisplayedIndex = listView.getLastVisiblePosition() - listView.getFirstVisiblePosition(); // The "lastDisplayedIndex" is actually displayed, hence the <= for (int i = 0; i <= lastDisplayedIndex; ++i) { final ButtonSwitcher buttonSwitcher = (ButtonSwitcher)listView.getChildAt(i) .findViewById(R.id.wordlist_button_switcher); if (i == indexToOpen) { buttonSwitcher.setStatusAndUpdateVisuals(getButtonSwitcherStatus(mStatus)); } else { buttonSwitcher.setStatusAndUpdateVisuals(ButtonSwitcher.STATUS_NO_BUTTON); } } }
Example 13
Source Project: aptoide-client File: FragmentSocialTimeline.java License: GNU General Public License v2.0 | 5 votes |
private static boolean canListViewScrollUp(ListView listView) { if (android.os.Build.VERSION.SDK_INT >= 14) { // For ICS and above we can call canScrollVertically() to determine this return ViewCompat.canScrollVertically(listView, -1); } else { // Pre-ICS we need to manually check the first visible item and the child view's top // value return listView.getChildCount() > 0 && (listView.getFirstVisiblePosition() > 0 || listView.getChildAt(0).getTop() < listView.getPaddingTop()); } }
Example 14
Source Project: buddycloud-android File: EndlessScrollListener.java License: Apache License 2.0 | 5 votes |
@Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { boolean loadMore = firstVisibleItem + visibleItemCount + VISIBLE_THRESHOLD >= totalItemCount; if (loadMore && !loading && !refreshing) { fragment.fillMore(); } // enable/disable pull-to-refresh SwipeRefreshLayout refreshLayout = fragment.getSwipeRefreshLayout(); if (firstVisibleItem == 0 && refreshLayout != null) { refreshLayout.setEnabled(true); } else { refreshLayout.setEnabled(false); } // show/hide post "+" button final ListView lw = fragment.getPostStreamView(); if (view.getId() == lw.getId()) { final int currentFirstVisibleItem = lw.getFirstVisiblePosition(); if (currentFirstVisibleItem > mLastFirstVisibleItem) { fragment.hideAddPostTopicBtn(); } else if (currentFirstVisibleItem < mLastFirstVisibleItem) { fragment.showAddPostTopicBtn(); } mLastFirstVisibleItem = currentFirstVisibleItem; } }
Example 15
Source Project: YiBo File: MyHomeListAdapter.java License: Apache License 2.0 | 5 votes |
public boolean refresh() { if (listNewBlogs == null || listNewBlogs.size() == 0) { return false; } addCacheToFirst(listNewBlogs); int offset = listNewBlogs.size(); listNewBlogs.clear(); ListView lvMicroBlog = (ListView)((Activity)context).findViewById(R.id.lvMicroBlog); if (lvMicroBlog == null) { return true; } Adapter adapter = lvMicroBlog.getAdapter(); if (adapter instanceof HeaderViewListAdapter) { adapter = ((HeaderViewListAdapter)adapter).getWrappedAdapter(); } if (adapter == this) { int position = lvMicroBlog.getFirstVisiblePosition(); View view = lvMicroBlog.getChildAt(0); int y = 0; if (view != null && position >= 1) { y = view.getTop(); //System.out.println("y:" + y + " position:" + position); position += offset; lvMicroBlog.setSelectionFromTop(position, y); } } return true; }
Example 16
Source Project: Dashchan File: ViewUnit.java License: Apache License 2.0 | 5 votes |
public void invalidateCommentView(ListView listView, int position) { if (position != ListView.INVALID_POSITION) { int first = listView.getFirstVisiblePosition(); int count = listView.getChildCount(); int index = position - first; if (index >= 0 && index < count) { View child = listView.getChildAt(index); PostViewHolder holder = (PostViewHolder) child.getTag(); holder.comment.invalidate(); } } }
Example 17
Source Project: LogcatViewer File: LogcatViewerFloatingView.java License: GNU General Public License v3.0 | 5 votes |
/** * Get list item view by position * * @param pos position of list item. * @param listView listview object. * @return list item view associated with position in the listview. */ private 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); } }
Example 18
Source Project: Bounce File: BounceTouchListener.java License: Apache License 2.0 | 5 votes |
private boolean hasHitTop() { if (mMainView instanceof ScrollView) { ScrollView scrollView = (ScrollView) mMainView; return scrollView.getScrollY() == 0; } else if (mMainView instanceof ListView) { ListView listView = (ListView) mMainView; if (listView.getAdapter() != null) { if (listView.getAdapter().getCount() > 0) { return listView.getFirstVisiblePosition() == 0 && listView.getChildAt(0).getTop() >= 0; } } } else if (mMainView instanceof RecyclerView) { RecyclerView recyclerView = (RecyclerView) mMainView; if (recyclerView.getAdapter() != null && recyclerView.getLayoutManager() != null) { RecyclerView.Adapter adapter = recyclerView.getAdapter(); if (adapter.getItemCount() > 0) { RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); if (layoutManager instanceof LinearLayoutManager) { LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager; return linearLayoutManager.findFirstCompletelyVisibleItemPosition() == 0; } else if (layoutManager instanceof StaggeredGridLayoutManager) { StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager; int[] checks = staggeredGridLayoutManager.findFirstCompletelyVisibleItemPositions(null); for (int check : checks) { if (check == 0) return true; } } } } } return false; }
Example 19
Source Project: soas File: SwipeRefreshListFragment.java License: Apache License 2.0 | 5 votes |
/** * Utility method to check whether a {@link ListView} can scroll up from it's current position. * Handles platform version differences, providing backwards compatible functionality where * needed. */ private static boolean canListViewScrollUp(ListView listView) { if (SdkUtils.hasIceCreamSandwich()) { // For ICS and above we can call canScrollVertically() to determine this return ViewCompat.canScrollVertically(listView, -1); } else { // Pre-ICS we need to manually check the first visible item and the child view's top // value return listView.getChildCount() > 0 && (listView.getFirstVisiblePosition() > 0 || listView.getChildAt(0).getTop() < listView.getPaddingTop()); } }
Example 20
Source Project: android-file-chooser File: UiUtil.java License: Apache License 2.0 | 4 votes |
public static int getListYScroll(@NonNull final ListView list) { View child = list.getChildAt(0); return child == null ? -1 : list.getFirstVisiblePosition() * child.getHeight() - child.getTop() + list.getPaddingTop(); }