本文整理汇总了Java中android.support.v7.widget.RecyclerView.findViewHolderForAdapterPosition方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.findViewHolderForAdapterPosition方法的具体用法?Java RecyclerView.findViewHolderForAdapterPosition怎么用?Java RecyclerView.findViewHolderForAdapterPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.support.v7.widget.RecyclerView
的用法示例。
在下文中一共展示了RecyclerView.findViewHolderForAdapterPosition方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: matchesSafely
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
protected boolean matchesSafely(final View itemView) {
resources = itemView.getResources();
if (childItemView == null) {
final RecyclerView recyclerView = (RecyclerView) itemView.getRootView().findViewById(recyclerViewId);
if (recyclerView != null && recyclerView.getId() == recyclerViewId) {
childItemView = recyclerView.findViewHolderForAdapterPosition(position).itemView;
} else {
return false;
}
}
if (targetViewId == -1) {
return itemView == childItemView;
} else {
final View targetView = childItemView.findViewById(targetViewId);
return itemView == targetView;
}
}
示例2: hasHolderItem
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@NonNull
public static ViewAssertion hasHolderItem(final Matcher<RecyclerView.ViewHolder> viewHolderMatcher) {
return new ViewAssertion() {
@Override public void check(View view, NoMatchingViewException e) {
if (!(view instanceof RecyclerView)) {
throw e;
}
boolean hasMatch = false;
RecyclerView rv = (RecyclerView) view;
for (int i = 0; i < rv.getChildCount(); i++) {
RecyclerView.ViewHolder vh = rv.findViewHolderForAdapterPosition(i);
hasMatch |= viewHolderMatcher.matches(vh);
}
Assert.assertTrue(hasMatch);
}
};
}
示例3: atPosition
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public static Matcher<View> atPosition(final int position, final Matcher<View> itemMatcher) {
return new BoundedMatcher<View, RecyclerView>(RecyclerView.class) {
@Override
public void describeTo(Description description) {
description.appendText("has item at position " + position + ": ");
itemMatcher.describeTo(description);
}
@Override
protected boolean matchesSafely(final RecyclerView view) {
RecyclerView.ViewHolder viewHolder = view.findViewHolderForAdapterPosition(position);
if (viewHolder == null) {
return false;
}
return itemMatcher.matches(viewHolder.itemView);
}
};
}
示例4: getViewHolders
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
* Get all <b>attached</b> {@link RecyclerView.ViewHolder} in the given {@link RecyclerView}
* that has implemented or extended the the given {@link T} class in the given range between
* {@code start} and {@code end}
*
* @param recyclerView the given {@link RecyclerView}
* @param cls the class of {@link android.support.v7.widget.RecyclerView.ViewHolder} of interest in the given {@link RecyclerView}
* @param start the start position
* @param end the end position
*/
public static <T extends IViewHolder> List<T> getViewHolders(@Nullable RecyclerView recyclerView, Class<T> cls, int start, int end) {
final int capacity = Math.max(end - start + 1, 0);
final List<T> list = new ArrayList<>(capacity);
if (recyclerView == null || recyclerView.getAdapter() == null) {
return list;
}
final int count = recyclerView.getAdapter().getItemCount();
if (start < 0 || end >= count) {
return list;
}
RecyclerView.ViewHolder holder;
for (int i = start; i <= end; i++) {
holder = recyclerView.findViewHolderForAdapterPosition(i);
if (cls.isInstance(holder)) {
//noinspection unchecked
list.add((T) holder);
}
}
return list;
}
示例5: atPosition
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public static Matcher<View> atPosition(final int position, @NonNull final Matcher<View> itemMatcher) {
checkNotNull(itemMatcher);
return new BoundedMatcher<View, RecyclerView>(RecyclerView.class) {
@Override
public void describeTo(Description description) {
description.appendText("has item at position " + position + ":\n");
itemMatcher.describeTo(description);
}
@Override
protected boolean matchesSafely(final RecyclerView view) {
RecyclerView.ViewHolder viewHolder = view.findViewHolderForAdapterPosition(position);
return viewHolder != null && itemMatcher.matches(viewHolder.itemView);
}
};
}
示例6: SetAllSelection
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public static void SetAllSelection(Boolean selection, RecyclerView recyclerView){
for (int i = 0; i < recyclerView.getChildCount(); i++) {
ViewHolder holder = (ViewHolder) recyclerView.findViewHolderForAdapterPosition(i);
Contact.setAllFlag(selection);
holder.contactLayout.setSelected(selection);
holder.contactCheckBox.setChecked(selection);
Log.i("iiii", "SetAllSelection: ");
}
}
示例7: onPrepareMerge
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public MergeInfo onPrepareMerge(RecyclerView parent, int selectedPosition, int targetPosition) {
VH selectedViewHolder = (VH) parent.findViewHolderForAdapterPosition(selectedPosition);
VH targetViewHolder = (VH) parent.findViewHolderForAdapterPosition(targetPosition);
if(selectedViewHolder == null || targetViewHolder == null) return null;
return onPrePareMerge(selectedViewHolder, targetViewHolder, selectedPosition, targetPosition);
}
示例8: onDragStart
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public void onDragStart(RecyclerView recyclerView, int position) {
VH selectedViewHolder = (VH) recyclerView.findViewHolderForAdapterPosition(position);
if(selectedViewHolder == null) return;
onDragStart(selectedViewHolder,position);
}
示例9: onDrawOver
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
super.onDrawOver(c, parent, state);
if (!showFloatingHeaderOnScrolling) {
return;
}
int firstVisiblePos = ((LinearLayoutManager) parent.getLayoutManager()).findFirstVisibleItemPosition();
if (firstVisiblePos == RecyclerView.NO_POSITION) {
return;
}
String title = getTitle(firstVisiblePos);
if (TextUtils.isEmpty(title)) {
return;
}
boolean flag = false;
if (getTitle(firstVisiblePos + 1) != null && !title.equals(getTitle(firstVisiblePos + 1))) {
//说明是当前组最后一个元素,但不一定碰撞了
// Log.e(TAG, "onDrawOver: "+"==============" +firstVisiblePos);
View child = parent.findViewHolderForAdapterPosition(firstVisiblePos).itemView;
if (child.getTop() + child.getMeasuredHeight() < mTitleHeight) {
//进一步检测碰撞
// Log.e(TAG, "onDrawOver: "+child.getTop()+"$"+firstVisiblePos );
c.save();//保存画布当前的状态
flag = true;
c.translate(0, child.getTop() + child.getMeasuredHeight() - mTitleHeight);//负的代表向上
}
}
int left = parent.getPaddingLeft();
int right = parent.getWidth() - parent.getPaddingRight();
int top = parent.getPaddingTop();
int bottom = top + mTitleHeight;
c.drawRect(left, top, right, bottom, mBackgroundPaint);
float x = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, mContext.getResources().getDisplayMetrics());
float y = bottom - (mTitleHeight - mTextHeight) / 2 - mTextBaselineOffset;//计算文字baseLine
c.drawText(title, x, y, mTextPaint);
if (flag) {
//还原画布为初始状态
c.restore();
}
}
示例10: onMerged
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public void onMerged(RecyclerView parent, int selectedPosition, int targetPosition) {
VH selectedViewHolder = (VH) parent.findViewHolderForAdapterPosition(selectedPosition);
VH targetViewHolder = (VH) parent.findViewHolderForAdapterPosition(targetPosition);
if(selectedViewHolder == null || targetViewHolder == null) return;
onMerged(selectedViewHolder, targetViewHolder, selectedPosition, targetPosition);
}
示例11: setSongPlaying
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public void setSongPlaying(RecyclerView recyclerView, int position)
{
MyViewHolder myViewHolder = (MyViewHolder) recyclerView.findViewHolderForAdapterPosition(position);
if(myViewHolder != null)
{
myViewHolder.artisteTextView.setTextColor(recyclerView.getResources().getColor(R.color.colorAccent));
myViewHolder.titleTextView.setTextColor(recyclerView.getResources().getColor(R.color.colorAccent));
myViewHolder.visualizer.setVisibility(View.VISIBLE);
myViewHolder.tintView.setVisibility(View.VISIBLE);
}
if(previousView != null && previousView != myViewHolder)
{
MyViewHolder previousViewHolder = previousView;
previousViewHolder.artisteTextView.setTextColor(recyclerView.getResources().getColor(R.color.colorPrimaryText));
previousViewHolder.titleTextView.setTextColor(recyclerView.getResources().getColor(R.color.colorPrimaryText));
previousViewHolder.visualizer.setVisibility(View.GONE);
previousViewHolder.tintView.setVisibility(View.GONE);
previousView = myViewHolder;
}
else
previousView = myViewHolder;
}
示例12: onStartMergeAnimation
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public void onStartMergeAnimation(RecyclerView parent, int selectedPosition, int targetPosition,int duration) {
VH selectedViewHolder = (VH) parent.findViewHolderForAdapterPosition(selectedPosition);
VH targetViewHolder = (VH) parent.findViewHolderForAdapterPosition(targetPosition);
if(selectedViewHolder == null || targetViewHolder == null) return;
onStartMergeAnimation(selectedViewHolder, targetViewHolder, selectedPosition, targetPosition,duration);
}
示例13: notifyDragCancel
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private void notifyDragCancel(BaseCallBack callBack, RecyclerView recyclerView) {
int oldPosition = callBack.getDragPosition();
if (oldPosition != -1) {
RecyclerView.ViewHolder holder = recyclerView.findViewHolderForAdapterPosition(oldPosition);
if (holder != null) {
holder.itemView.setVisibility(VISIBLE);
callBack.setDragPosition(-1, false);
} else {
callBack.setDragPosition(-1, true);
}
} else {
callBack.setDragPosition(-1, true);
}
}
示例14: withRecyclerView
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public static Matcher<View> withRecyclerView(final int recyclerViewId, final int position) {
return new CustomTypeSafeMatcher<View>(format("recycler view with id: {0} at position: {1}",
recyclerViewId, position)) {
@Override
protected boolean matchesSafely(View item) {
View view = item.getRootView().findViewById(recyclerViewId);
if (view == null || !(view instanceof RecyclerView))
return false;
RecyclerView recyclerView = (RecyclerView) view;
View childView = recyclerView.findViewHolderForAdapterPosition(position).itemView;
return childView == item;
}
};
}
示例15: clearSelection
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public void clearSelection(RecyclerView recyclerView) {
if (recyclerView != null) {
for (int item : mSelectedItems) {
RecyclerView.ViewHolder viewHolder = recyclerView
.findViewHolderForAdapterPosition(item);
if (viewHolder == null)
continue;
((MessageHolder) viewHolder).setSelected(false, false);
}
}
mSelectedItems.clear();
}