本文整理汇总了Java中android.widget.ListView.getFirstVisiblePosition方法的典型用法代码示例。如果您正苦于以下问题:Java ListView.getFirstVisiblePosition方法的具体用法?Java ListView.getFirstVisiblePosition怎么用?Java ListView.getFirstVisiblePosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.widget.ListView
的用法示例。
在下文中一共展示了ListView.getFirstVisiblePosition方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: updatePodcastRows
import android.widget.ListView; //导入方法依赖的package包/类
private void updatePodcastRows() {
ListView list = getListView();
int first = list.getFirstVisiblePosition();
int last = list.getLastVisiblePosition();
for (int i = first; i <= last; i++) {
View view = list.getChildAt(i - first);
list.getAdapter().getView(i, view, list);
}
}
示例2: scrollListBy
import android.widget.ListView; //导入方法依赖的package包/类
static void scrollListBy(ListView listView, int y) {
int firstPosition = listView.getFirstVisiblePosition();
if (firstPosition != -1) {
View firstView = listView.getChildAt(0);
if (firstView != null) {
listView.setSelectionFromTop(firstPosition, firstView.getTop() - y);
}
}
}
示例3: onKeyDown
import android.widget.ListView; //导入方法依赖的package包/类
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Shortcuts that work no matter what is selected
if (QMail.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);
}
示例4: notifyItemChanged
import android.widget.ListView; //导入方法依赖的package包/类
/**
* 局部更新API
*/
public void notifyItemChanged(ListView listview, int position){
int firstPos = listview.getFirstVisiblePosition();
int lastPos = listview.getLastVisiblePosition();
Job job = mData.get(position);
if(position >= firstPos && position <= lastPos){
View view = listview.getChildAt(position - firstPos); //NOTE
DownloadAdapter.VH vh = (DownloadAdapter.VH) view.getTag();
vh.progress.setProgress(job.progress);
if(job.progress == 100){
vh.btn.setText("完成");
}
}
}
示例5: getViewByPosition
import android.widget.ListView; //导入方法依赖的package包/类
/**
* @see <a href="http://stackoverflow.com/questions/24811536/android-listview-get-item-view-by-position" >android - listview get item view by position
</a>
* @param pos
* @param listView
* @return
*/
public static 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);
}
}
示例6: menuItemContentChanged
import android.widget.ListView; //导入方法依赖的package包/类
/**
* Notifies the menu that the contents of the menu item specified by {@code menuRowId} have
* changed. This should be called if icons, titles, etc. are changing for a particular menu
* item while the menu is open.
* @param menuRowId The id of the menu item to change. This must be a row id and not a child
* id.
*/
public void menuItemContentChanged(int menuRowId) {
// Make sure we have all the valid state objects we need.
if (mAdapter == null || mMenu == null || mPopup == null || mPopup.getListView() == null) {
return;
}
// Calculate the item index.
int index = -1;
int menuSize = mMenu.size();
for (int i = 0; i < menuSize; i++) {
if (mMenu.getItem(i).getItemId() == menuRowId) {
index = i;
break;
}
}
if (index == -1) return;
// Check if the item is visible.
ListView list = mPopup.getListView();
int startIndex = list.getFirstVisiblePosition();
int endIndex = list.getLastVisiblePosition();
if (index < startIndex || index > endIndex) return;
// Grab the correct View.
View view = list.getChildAt(index - startIndex);
if (view == null) return;
// Cause the Adapter to re-populate the View.
list.getAdapter().getView(index, view, list);
}
示例7: canTargetScrollVertically
import android.widget.ListView; //导入方法依赖的package包/类
public boolean canTargetScrollVertically(int direction) {
ListView target = this.mTarget;
int itemCount = target.getCount();
if (itemCount == 0) {
return false;
}
int childCount = target.getChildCount();
int firstPosition = target.getFirstVisiblePosition();
int lastPosition = firstPosition + childCount;
if (direction > 0) {
if (lastPosition >= itemCount && target.getChildAt(childCount - 1).getBottom() <= target.getHeight()) {
return false;
}
} else if (direction >= 0) {
return false;
} else {
if (firstPosition <= 0 && target.getChildAt(0).getTop() >= 0) {
return false;
}
}
return true;
}
示例8: updateProgressPartly
import android.widget.ListView; //导入方法依赖的package包/类
/**
* 单个更新某个条目 只有可见的时候更新progress,
* @param progress 当前进度
* @param position 位置
* @param lv_message Listview
*/
public static void updateProgressPartly(int progress,int position,ListView lv_message){
int firstVisiblePosition = lv_message.getFirstVisiblePosition();
int lastVisiblePosition = lv_message.getLastVisiblePosition();
if(position>=firstVisiblePosition && position<=lastVisiblePosition){
View view = lv_message.getChildAt(position - firstVisiblePosition);
if(view.getTag() instanceof ImageMessageHolder){
ImageMessageHolder vh = (ImageMessageHolder)view.getTag();
vh.sobot_pic_progress_round.setProgress(progress);
}
}
}
示例9: getViewByPosition
import android.widget.ListView; //导入方法依赖的package包/类
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);
}
}
示例10: canListViewScrollUp
import android.widget.ListView; //导入方法依赖的package包/类
/**
* 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 (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());
}
}
示例11: onLoadingFinish
import android.widget.ListView; //导入方法依赖的package包/类
@Override
public AnimatorUpdateListener onLoadingFinish(final RefreshKernel kernel, final int footerHeight, int startDelay, final int duration) {
if (mScrollableView != null && kernel.getRefreshLayout().isEnableScrollContentWhenLoaded()) {
if (!canScrollDown(mScrollableView)) {
return null;
}
if (mScrollableView instanceof AbsListView && !(mScrollableView instanceof ListView) && Build.VERSION.SDK_INT < 19) {
if (startDelay > 0) {
kernel.getRefreshLayout().getLayout().postDelayed(new Runnable() {
@Override
public void run() {
((AbsListView) mScrollableView).smoothScrollBy(footerHeight, duration);
}
}, startDelay);
} else {
((AbsListView) mScrollableView).smoothScrollBy(footerHeight, duration);
}
return null;
}
return new AnimatorUpdateListener() {
int lastValue = kernel.getSpinner();
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int value = (int) animation.getAnimatedValue();
try {
if (mScrollableView instanceof ListView) {
if (Build.VERSION.SDK_INT >= 19) {
((ListView) RefreshContentWrapper.this.mScrollableView).scrollListBy(value - lastValue);
} else {
// ListViewCompat.scrollListBy((ListView) mScrollableView, value - lastValue);
ListView listView = (ListView) RefreshContentWrapper.this.mScrollableView;
final int firstPosition = listView.getFirstVisiblePosition();
if (firstPosition == ListView.INVALID_POSITION) {
return;
}
final View firstView = listView.getChildAt(0);
if (firstView == null) {
return;
}
final int newTop = firstView.getTop() - (value - lastValue);
listView.setSelectionFromTop(firstPosition, newTop);
}
} else {
mScrollableView.scrollBy(0, value - lastValue);
}
} catch (Throwable ignored) {
//根据用户反馈,此处可能会有BUG
}
lastValue = value;
}
};
}
return null;
}
示例12: scrollToTop
import android.widget.ListView; //导入方法依赖的package包/类
/**
* listview滚动到顶部
*
* @param animate 是否动画
* @return
*/
public UDBaseListOrRecyclerView scrollToTop(final int offset, final boolean animate) {
final ListView lv = getListView();
if (lv != null) {
if (animate) {
if (lv.getFirstVisiblePosition() > 7) {//hack fast scroll
lv.setSelection(7);
}
lv.smoothScrollToPositionFromTop(0, offset);
} else {
lv.setSelectionFromTop(0, offset);
}
}
return this;
}
示例13: isIdVisible
import android.widget.ListView; //导入方法依赖的package包/类
public static boolean isIdVisible(ListView listView, long id) {
final int firstVisible = listView.getFirstVisiblePosition();
final int lastVisible = listView.getLastVisiblePosition();
for (int pos = firstVisible; pos <= lastVisible; pos++) {
long posId = listView.getItemIdAtPosition(pos);
if (posId == id) {
return true;
}
}
return false;
}
示例14: getScroll
import android.widget.ListView; //导入方法依赖的package包/类
private int getScroll() {
ListView listview = basePagedItemAdapter.getListView();
View c = listview.getChildAt(0); //this is the first visible row
int scrollY = -c.getTop();
listViewItemHeights.put(listview.getFirstVisiblePosition(), c.getHeight());
for (int i = 0; i < listview.getFirstVisiblePosition(); i ++) {
if (listViewItemHeights.get(i) != null) { // (this is a sanity check)
scrollY += listViewItemHeights.get(i); //add all heights of the views that are gone
}
}
return scrollY;
}
示例15: saveListPosition
import android.widget.ListView; //导入方法依赖的package包/类
public void saveListPosition() {
if (mAdapter != null) {
ListView l = getListView();
int position = l.getFirstVisiblePosition();
View v = l.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
setListPosition(new Position(position, top));
}
}