android.widget.ListView#getPositionForView ( )源码实例Demo

下面列出了android.widget.ListView#getPositionForView ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: android_9.0.0_r45   文件: Transition.java
static void addViewValues(TransitionValuesMaps transitionValuesMaps,
        View view, TransitionValues transitionValues) {
    transitionValuesMaps.viewValues.put(view, transitionValues);
    int id = view.getId();
    if (id >= 0) {
        if (transitionValuesMaps.idValues.indexOfKey(id) >= 0) {
            // Duplicate IDs cannot match by ID.
            transitionValuesMaps.idValues.put(id, null);
        } else {
            transitionValuesMaps.idValues.put(id, view);
        }
    }
    String name = view.getTransitionName();
    if (name != null) {
        if (transitionValuesMaps.nameValues.containsKey(name)) {
            // Duplicate transitionNames: cannot match by transitionName.
            transitionValuesMaps.nameValues.put(name, null);
        } else {
            transitionValuesMaps.nameValues.put(name, view);
        }
    }
    if (view.getParent() instanceof ListView) {
        ListView listview = (ListView) view.getParent();
        if (listview.getAdapter().hasStableIds()) {
            int position = listview.getPositionForView(view);
            long itemId = listview.getItemIdAtPosition(position);
            if (transitionValuesMaps.itemIdValues.indexOfKey(itemId) >= 0) {
                // Duplicate item IDs: cannot match by item ID.
                View alreadyMatched = transitionValuesMaps.itemIdValues.get(itemId);
                if (alreadyMatched != null) {
                    alreadyMatched.setHasTransientState(false);
                    transitionValuesMaps.itemIdValues.put(itemId, null);
                }
            } else {
                view.setHasTransientState(true);
                transitionValuesMaps.itemIdValues.put(itemId, view);
            }
        }
    }
}
 
源代码2 项目: Dashchan   文件: ViewUnit.java
boolean handlePostForDoubleClick(final View view) {
	final PostViewHolder holder = ListViewUtils.getViewHolder(view, PostViewHolder.class);
	if (holder != null) {
		if (holder.comment.getVisibility() != View.VISIBLE || holder.comment.isSelectionEnabled()) {
			return false;
		}
		long t = System.currentTimeMillis();
		long timeout = holder.comment.getPreferredDoubleTapTimeout();
		if (t - holder.lastCommentClick > timeout) {
			holder.lastCommentClick = t;
		} else {
			final ListView listView = (ListView) view.getParent();
			final int position = listView.getPositionForView(view);
			holder.comment.startSelection();
			int padding = holder.comment.getSelectionPadding();
			if (padding > 0) {
				final int listHeight = listView.getHeight() - listView.getPaddingTop() -
						listView.getPaddingBottom();
				listView.post(() -> {
					int end = holder.comment.getSelectionEnd();
					if (end >= 0) {
						Layout layout = holder.comment.getLayout();
						int line = layout.getLineForOffset(end);
						int count = layout.getLineCount();
						if (count - line <= 4) {
							listView.setSelectionFromTop(position, listHeight - view.getHeight());
						}
					}
				});
			}
		}
		return true;
	} else {
		return false;
	}
}
 
源代码3 项目: UltimateAndroid   文件: ListBuddiesLayout.java
private void setSelectorPressed(ListView list) {
    if (mDownView != null) {
        mDownPosition = list.getPositionForView(mDownView);
        mDownView.postDelayed(new Runnable() {
            @Override
            public void run() {
                if (isUserInteracting) {
                    if (mDownView != null) {
                        mDownView.setPressed(true);
                    }
                }
            }
        }, PRESS_DELAY);
    }
}
 
源代码4 项目: UltimateAndroid   文件: ListBuddiesLayout.java
private void setSelectorPressed(ListView list) {
    if (mDownView != null) {
        mDownPosition = list.getPositionForView(mDownView);
        mDownView.postDelayed(new Runnable() {
            @Override
            public void run() {
                if (isUserInteracting) {
                    if (mDownView != null) {
                        mDownView.setPressed(true);
                    }
                }
            }
        }, PRESS_DELAY);
    }
}
 
源代码5 项目: ListBuddies   文件: ListBuddiesLayout.java
private void setSelectorPressed(ListView list) {
    if (mDownView != null) {
        mDownPosition = list.getPositionForView(mDownView);
        mDownView.postDelayed(new Runnable() {
            @Override
            public void run() {
                if (isUserInteracting) {
                    if (mDownView != null) {
                        mDownView.setPressed(true);
                    }
                }
            }
        }, PRESS_DELAY);
    }
}
 
源代码6 项目: Androzic   文件: WaypointList.java
@Override
public void onClick(View v)
{
	ListView lv = getListView();
	int position = lv.getPositionForView((View) v.getParent());
	closeItem(position);
	Waypoint waypoint = getItem(position);

	switch (v.getId())
	{
		case R.id.action_view:
			waypointActionsCallback.onWaypointView(waypoint);
			break;
		case R.id.action_navigate:
			waypointActionsCallback.onWaypointNavigate(waypoint);
			break;
		case R.id.action_edit:
			waypointActionsCallback.onWaypointEdit(waypoint);
			break;
		case R.id.action_share:
			waypointActionsCallback.onWaypointShare(waypoint);
			break;
		case R.id.action_delete:
			waypointActionsCallback.onWaypointRemove(waypoint);
			adapter.notifyDataSetChanged();
			break;
	}
}
 
源代码7 项目: Androzic   文件: TrackList.java
@Override
public void onClick(View v)
{
	ListView lv = getListView();
	int position = lv.getPositionForView((View) v.getParent());
	closeItem(position);
	final Track track = application.getTrack(position);
	
	switch (v.getId())
	{
		case R.id.action_view:
			trackActionsCallback.onTrackView(track);
			break;
		case R.id.action_edit:
			trackActionsCallback.onTrackEdit(track);
			break;
		case R.id.action_edit_path:
			trackActionsCallback.onTrackEditPath(track);
			break;
		case R.id.action_track_to_route:
			trackActionsCallback.onTrackToRoute(track);
			break;
		case R.id.action_save:
			trackActionsCallback.onTrackSave(track);
			break;
		case R.id.action_remove:
			application.removeTrack(track);
			adapter.notifyDataSetChanged();
			break;
	}
}
 
源代码8 项目: Androzic   文件: RouteList.java
@Override
public void onClick(View v)
{
	ListView lv = getListView();
	int position = lv.getPositionForView((View) v.getParent());
	closeItem(position);
	final Route route = getItem(position);
	
	switch (v.getId())
	{
		case R.id.action_navigate:
			routeActionsCallback.onRouteNavigate(route);
			break;
		case R.id.action_edit:
			routeActionsCallback.onRouteEdit(route);
			break;
		case R.id.action_edit_path:
			routeActionsCallback.onRouteEditPath(route);
			break;
		case R.id.action_save:
			routeActionsCallback.onRouteSave(route);
			break;
		case R.id.action_remove:
			application.removeRoute(route);
			adapter.notifyDataSetChanged();
			break;
	}
}
 
源代码9 项目: Transitions-Everywhere   文件: Transition.java
static void addViewValues(@NonNull TransitionValuesMaps transitionValuesMaps,
                          @NonNull View view,
                          @NonNull TransitionValues transitionValues) {
    transitionValuesMaps.viewValues.put(view, transitionValues);
    int id = view.getId();
    if (id >= 0) {
        if (transitionValuesMaps.idValues.indexOfKey(id) >= 0) {
            // Duplicate IDs cannot match by ID.
            transitionValuesMaps.idValues.put(id, null);
        } else {
            transitionValuesMaps.idValues.put(id, view);
        }
    }
    String name = ViewUtils.getTransitionName(view);
    if (name != null) {
        if (transitionValuesMaps.nameValues.containsKey(name)) {
            // Duplicate transitionNames: cannot match by transitionName.
            transitionValuesMaps.nameValues.put(name, null);
        } else {
            transitionValuesMaps.nameValues.put(name, view);
        }
    }
    if (view.getParent() instanceof ListView) {
        ListView listview = (ListView) view.getParent();
        if (listview.getAdapter().hasStableIds()) {
            int position = listview.getPositionForView(view);
            long itemId = listview.getItemIdAtPosition(position);
            if (transitionValuesMaps.itemIdValues.indexOfKey(itemId) >= 0) {
                // Duplicate item IDs: cannot match by item ID.
                View alreadyMatched = transitionValuesMaps.itemIdValues.get(itemId);
                if (alreadyMatched != null) {
                    ViewUtils.setHasTransientState(alreadyMatched, false);
                    transitionValuesMaps.itemIdValues.put(itemId, null);
                }
            } else {
                ViewUtils.setHasTransientState(view, true);
                transitionValuesMaps.itemIdValues.put(itemId, view);
            }
        }
    }
}