本文整理汇总了Java中android.support.v7.widget.RecyclerView.findViewHolderForLayoutPosition方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.findViewHolderForLayoutPosition方法的具体用法?Java RecyclerView.findViewHolderForLayoutPosition怎么用?Java RecyclerView.findViewHolderForLayoutPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.support.v7.widget.RecyclerView
的用法示例。
在下文中一共展示了RecyclerView.findViewHolderForLayoutPosition方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getViewByPosition
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Nullable
public View getViewByPosition(RecyclerView recyclerView, int position, @IdRes int viewId) {
if (recyclerView == null) {
return null;
}
BaseViewHolder viewHolder = (BaseViewHolder) recyclerView.findViewHolderForLayoutPosition(position);
if (viewHolder == null) {
return null;
}
return viewHolder.getView(viewId);
}
示例2: getViewByPosition
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public View getViewByPosition(RecyclerView recyclerView, int position, @IdRes int viewId) {
if (recyclerView == null) {
return null;
}
BaseViewHolder viewHolder = (BaseViewHolder) recyclerView.findViewHolderForLayoutPosition(position);
if (viewHolder == null) {
return null;
}
return viewHolder.getView(viewId);
}
示例3: getViewByPosition
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public View getViewByPosition(RecyclerView recyclerView, int position, int viewId) {
if (recyclerView == null) {
return null;
}
BaseViewHolder viewHolder = (BaseViewHolder) recyclerView.findViewHolderForLayoutPosition(position);
return viewHolder.getView(viewId);
}
示例4: check
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public final void check(View view, NoMatchingViewException e) {
RecyclerView recyclerView = (RecyclerView) view;
RecyclerView.ViewHolder viewHolderForPosition = recyclerView.findViewHolderForLayoutPosition(position);
if (viewHolderForPosition == null) {
throw (new PerformException.Builder())
.withActionDescription(toString())
.withViewDescription(HumanReadables.describe(view))
.withCause(new IllegalStateException("No view holder at position: " + position))
.build();
} else {
View viewAtPosition = viewHolderForPosition.itemView;
itemViewAssertion.check(item, viewAtPosition, e);
}
}
示例5: onDrawOver
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
* 绘制在itemView的上层
*/
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
int pos = ((LinearLayoutManager)parent.getLayoutManager()).findFirstVisibleItemPosition();
String tag = mDatas.get(pos).getTag();
View child = parent.findViewHolderForLayoutPosition(pos).itemView;
boolean flag = false;//定义一个flag,Canvas是否位移过的标志
if (pos + 1 < mDatas.size()) {
if (null != tag && !tag.equals(mDatas.get(pos + 1).getTag())) {
if (child.getHeight() + child.getTop() < mTitleHeight) {
c.save();
Log.e(TAG, "child.getTop() = " + child.getTop());
flag = true;
c.translate(0, child.getHeight() + child.getTop() - mTitleHeight);
Log.e(TAG, "child.translate = " + (child.getHeight() + child.getTop() - mTitleHeight));
}
}
}
mPaint.setColor(COLOR_TITLE_BG);
c.drawRect(parent.getPaddingLeft(), parent.getPaddingTop(), parent.getRight() - parent.getPaddingRight(), parent.getPaddingTop() + mTitleHeight, mPaint);
mPaint.setColor(COLOR_TITLE_FONT);
mPaint.getTextBounds(tag, 0, tag.length(), mBounds);
c.drawText(tag, child.getPaddingLeft(),
parent.getPaddingTop() + mTitleHeight - (mTitleHeight / 2 - mBounds.height() / 2),
mPaint);
if (flag)
c.restore();
}
示例6: onDrawOver
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {//最后调用 绘制在最上层
int pos = ((LinearLayoutManager)(parent.getLayoutManager())).findFirstVisibleItemPosition();
String tag = mDatas.get(pos).getTag();
//View child = parent.getChildAt(pos);
View child = parent.findViewHolderForLayoutPosition(pos).itemView;//出现一个奇怪的bug,有时候child为空,所以将 child = parent.getChildAt(i)。-》 parent.findViewHolderForLayoutPosition(pos).itemView
boolean flag = false;//定义一个flag,Canvas是否位移过的标志
if ((pos + 1) < mDatas.size()) {//防止数组越界(一般情况不会出现)
if (null != tag && !tag.equals(mDatas.get(pos + 1).getTag())) {//当前第一个可见的Item的tag,不等于其后一个item的tag,说明悬浮的View要切换了
Log.d("zxt", "onDrawOver() called with: c = [" + child.getTop());//当getTop开始变负,它的绝对值,是第一个可见的Item移出屏幕的距离,
if (child.getHeight() + child.getTop() < mTitleHeight) {//当第一个可见的item在屏幕中还剩的高度小于title区域的高度时,我们也该开始做悬浮Title的“交换动画”
c.save();//每次绘制前 保存当前Canvas状态,
flag = true;
//一种头部折叠起来的视效,个人觉得也还不错~
//可与123行 c.drawRect 比较,只有bottom参数不一样,由于 child.getHeight() + child.getTop() < mTitleHeight,所以绘制区域是在不断的减小,有种折叠起来的感觉
//c.clipRect(parent.getPaddingLeft(), parent.getPaddingTop(), parent.getRight() - parent.getPaddingRight(), parent.getPaddingTop() + child.getHeight() + child.getTop());
//类似饿了么点餐时,商品列表的悬停头部切换“动画效果”
//上滑时,将canvas上移 (y为负数) ,所以后面canvas 画出来的Rect和Text都上移了,有种切换的“动画”感觉
c.translate(0, child.getHeight() + child.getTop() - mTitleHeight);
}
}
}
mPaint.setColor(COLOR_TITLE_BG);
c.drawRect(parent.getPaddingLeft(), parent.getPaddingTop(), parent.getRight() - parent.getPaddingRight(), parent.getPaddingTop() + mTitleHeight, mPaint);
mPaint.setColor(COLOR_TITLE_FONT);
mPaint.getTextBounds(tag, 0, tag.length(), mBounds);
c.drawText(tag, child.getPaddingLeft(),
parent.getPaddingTop() + mTitleHeight - (mTitleHeight / 2 - mBounds.height() / 2),
mPaint);
if (flag)
c.restore();
}
示例7: check
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public final void check(View view, NoMatchingViewException e) {
RecyclerView recyclerView = (RecyclerView) view;
RecyclerView.ViewHolder viewHolderForPosition =
recyclerView.findViewHolderForLayoutPosition(position);
if (viewHolderForPosition == null) {
throw (new PerformException.Builder()).withActionDescription(toString())
.withViewDescription(HumanReadables.describe(view))
.withCause(new IllegalStateException("No view holder at position: " + position))
.build();
} else {
View viewAtPosition = viewHolderForPosition.itemView;
itemViewAssertion.check(item, viewAtPosition, e);
}
}