本文整理汇总了Java中android.support.v7.widget.RecyclerView.post方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.post方法的具体用法?Java RecyclerView.post怎么用?Java RecyclerView.post使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.support.v7.widget.RecyclerView
的用法示例。
在下文中一共展示了RecyclerView.post方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: refresh
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
* {@inheritDoc}
*/
@Override
public void refresh(final boolean layoutUpdated) {
final RecyclerView contentView = getContentView();
if (contentView == null) return;
if (contentView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) {
// contentView.stopScroll();
}
updateRunnable = new Runnable() {
@Override
public void run() {
if (!contentView.isComputingLayout()) {
//to prevent notify update when recyclerView is in computingLayout process
mGroupBasicAdapter.notifyUpdate(layoutUpdated);
if (mSwipeItemTouchListener != null) {
mSwipeItemTouchListener.updateCurrCard();
}
}
}
};
contentView.post(updateRunnable);
}
示例2: onScrolled
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
final int visibleItemCount = recyclerView.getChildCount();
final int totalItemCount = linearLayoutManager.getItemCount();
final int firstVisibleItem = linearLayoutManager.findFirstVisibleItemPosition();
if (loading) {
if (totalItemCount > previousTotal || totalItemCount == 0) {
loading = false;
previousTotal = totalItemCount;
}
}
// End has been reached
if (!loading && totalItemCount - visibleItemCount <= firstVisibleItem + visibleThreshold) {
recyclerView.post(callbacks);
loading = true;
}
}
示例3: onAttachedToRecyclerView
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onAttachedToRecyclerView(final RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
if (manager instanceof GridLayoutManager) {
final GridLayoutManager gridManager = ((GridLayoutManager) manager);
gridManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
int type = getItemViewType(position);
if (mSpanSizeLookup == null)
return (type == EMPTY_VIEW || type == HEADER_VIEW || type == FOOTER_VIEW || type == LOADING_VIEW) ? gridManager.getSpanCount() : 1;
else
return (type == EMPTY_VIEW || type == HEADER_VIEW || type == FOOTER_VIEW || type == LOADING_VIEW) ? gridManager.getSpanCount() : mSpanSizeLookup.getSpanSize(gridManager, position - getHeaderLayoutCount());
}
});
}
recyclerView.post(new Runnable() {
@Override
public void run() {
if (mRequestLoadMoreListener != null && pageSize == -1) {
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
int visibleItemCount = layoutManager.getChildCount();
Log.e("visibleItemCount", visibleItemCount + "");
openLoadMore(visibleItemCount);
}
}
});
}
示例4: scrollToBottom
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public static void scrollToBottom(final RecyclerView recyclerView) {
if (recyclerView != null) {
if (recyclerView.getAdapter() != null && recyclerView.getAdapter().getItemCount() > 0) {
recyclerView.post(new Runnable() {
@Override
public void run() {
recyclerView.smoothScrollToPosition(recyclerView.getAdapter().getItemCount() - 1);
}
});
}
}
}
示例5: setupScrollListener
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private EndlessRecyclerViewOnScrollListener setupScrollListener(RecyclerView.LayoutManager layoutManager) {
return new EndlessRecyclerViewOnScrollListener((GridLayoutManager) layoutManager) {
@Override
public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
view.post(() -> {
if (adapter.addLoadingView()) {
homePeoplePresenter.onListEndReached(page);
}
});
}
};
}
示例6: onHoritiontalScroll
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
* 水平滑动
*
* @param recyclerView
* @param dx
*/
private void onHoritiontalScroll(final RecyclerView recyclerView, int dx) {
mConsumeX += dx;
if (dx > 0) {
// 右滑
slideDirct = SLIDE_RIGHT;
} else {
// 左滑
slideDirct = SLIDE_LEFT;
}
// 让RecyclerView测绘完成后再调用,避免GalleryAdapterHelper.mItemWidth的值拿不到
recyclerView.post(new Runnable() {
@Override
public void run() {
int shouldConsumeX = GalleryItemDecoration.mItemComusemX;
// 获取当前的位置
int position = getPosition(mConsumeX, shouldConsumeX);
float offset = (float) mConsumeX / (float) shouldConsumeX; // 位置浮点值(即总消耗距离 / 每一页理论消耗距离 = 一个浮点型的位置值)
Log.d("TAG", "offset=" + offset + "; mConsumeX=" + mConsumeX + "; shouldConsumeX=" + shouldConsumeX);
// 避免offset值取整时进一,从而影响了percent值
if (offset >= mGalleryRecyclerView.getLinearLayoutManager().findFirstVisibleItemPosition() + 1 && slideDirct == SLIDE_RIGHT) {
return;
}
// 获取当前页移动的百分值
float percent = offset - ((int) offset);
// 设置动画变化
AnimManager.getInstance().setAnimation(recyclerView, position, percent);
}
});
}
示例7: initViews
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public void initViews() {
random = (ImageView) activity.findViewById(R.id.sheet_detail_songs_icon);
playAllRandom = (TextView) activity.findViewById(R.id.sheet_detail_songs_play_random);
line = activity.findViewById(R.id.sheet_detail_songs_line);
songList = (RecyclerView) activity.findViewById(R.id.sheet_detail_songs_list);
randomContainer = activity.findViewById(R.id.sheet_detail_random_container);
checkContainer = activity.findViewById(R.id.sheet_detail_check_container);
checkAll = (CheckBox) activity.findViewById(R.id.sheet_detail_check_all);
checkCount = (TextView) activity.findViewById(R.id.sheet_detail_check_count);
checkAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isChecked = checkAll.isChecked();
if (isChecked) {
songAdapter.checkAll();
} else {
songAdapter.clearAllCheck();
}
}
});
randomContainer.setOnClickListener(this);
FloatingActionButton fabPlayAll = (FloatingActionButton) activity.findViewById(R.id.sheet_detail_play_all);
fabPlayAll.setOnClickListener(this);
songList.post(new Runnable() {
@Override
public void run() {
calculateRecycleViewHeight();
}
});
}
示例8: onVerticalScroll
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
* 垂直滑动
*
* @param recyclerView
* @param dy
*/
private void onVerticalScroll(final RecyclerView recyclerView, int dy) {
mConsumeY += dy;
if (dy > 0) {
slideDirct = SLIDE_BOTTOM;
} else {
slideDirct = SLIDE_TOP;
}
// 让RecyclerView测绘完成后再调用,避免GalleryAdapterHelper.mItemHeight的值拿不到
recyclerView.post(new Runnable() {
@Override
public void run() {
int shouldConsumeY = GalleryItemDecoration.mItemComusemY;
// 获取当前的位置
int position = getPosition(mConsumeY, shouldConsumeY);
float offset = (float) mConsumeY / (float) shouldConsumeY; // 位置浮点值(即总消耗距离 / 每一页理论消耗距离 = 一个浮点型的位置值)
// 避免offset值取整时进一,从而影响了percent值
if (offset >= mGalleryRecyclerView.getLinearLayoutManager().findFirstVisibleItemPosition() + 1 && slideDirct == SLIDE_BOTTOM) {
return;
}
// 获取当前页移动的百分值
float percent = offset - ((int) offset);
Log.d("TAG", "offset=" + offset + "; mConsumeY=" + mConsumeY + "; shouldConsumeY=" + shouldConsumeY);
// 设置动画变化
AnimManager.getInstance().setAnimation(recyclerView, position, percent);
}
});
}
示例9: onCreate
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
setContentView(R.layout.activity_recycler);
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
mRvPostLister = (RecyclerView) findViewById(R.id.rv_post_list);
final LinearLayoutManager manager = new LinearLayoutManager(this);
mRvPostLister.setLayoutManager(manager);
mPostList = new ArrayList<>();
for (int i = 0; i < 29; i++) {
List<UserViewInfo> imgUrls = new ArrayList<>();
UserViewInfo userViewInfo;
Random ss=new Random();
for (int j = 0; j <ss.nextInt(9); j++) {
userViewInfo=new UserViewInfo(IMG_URL_LIST[j]);
imgUrls.add(userViewInfo);
}
Post post = new Post("Am I handsome? Am I handsome? Am I handsome?", imgUrls);
mPostList.add(post);
}
mNineImageAdapter = new PostAdapter(this, mPostList, NineGridImageView.STYLE_GRID);
mRvPostLister.setAdapter(mNineImageAdapter);
manager.scrollToPositionWithOffset(5, 0);
mRvPostLister.post(new Runnable() {
@Override
public void run() {
View view = manager.findViewByPosition(1);
if (view != null) System.out.println(view.getMeasuredHeight());
}
});
}
示例10: attach
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
protected boolean attach(RecyclerView recyclerView) {
if (recyclerView != null) {
recyclerView.addOnScrollListener(this);
recyclerView.post(new Runnable() {
@Override
public void run() {
onScroll();
}
});
}
return true;
}
示例11: onCreateView
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = null;
mContext = getContext();
if (mPage == 1) {
view = inflater.inflate(R.layout.fragment_routes, container, false);
final RecyclerView routeItems = (RecyclerView) view.findViewById(R.id.route_items);
routeItems.setHasFixedSize(true);
routeItems.post(new Runnable() {
@Override
public void run() {
GridLayoutManager layoutManager = new GridLayoutManager(mContext, 2);
routeItems.setLayoutManager(layoutManager);
RoutesAdapter adapter = new RoutesAdapter(allRoutes);
adapter.setFlag(1);
adapter.setItemWidth((int) ((routeItems.getWidth()) / 2));
routeItems.setAdapter(adapter);
}
});
} else if (mPage == 2) {
view = inflater.inflate(R.layout.fragment_teams, container, false);
}
return view;
}
示例12: computeScroll
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void computeScroll() {
if (mOverScroller.computeScrollOffset()) {
int currY = mOverScroller.getCurrY();
if (currY - maxScrollY >= 0) {
if (isFling) {
final RecyclerView recyclerView = mScrollTarget.getRecyclerView();
if (recyclerView != null) {
recyclerView.post(new Runnable() {
@Override
public void run() {
//recyclerView.fling(0, Math.max(0, 1000));
final float lastVelocity = getLastVelocity();
recyclerView.fling(0, (int) Math.max(0, Math.abs(lastVelocity)));
// int velocityDecay = getChildAt(0).getMeasuredHeight() * 3;//速度衰减值
// if (lastVelocity < velocityDecay) {
// recyclerView.fling(0, Math.max(0, (int) Math.abs(lastVelocity)));
// } else {
// recyclerView.fling(0, Math.max(0, (int) lastVelocity - velocityDecay));
// }
}
});
}
}
isFling = false;
}
scrollTo(0, currY);
postInvalidate();
}
}
示例13: getItemOffsets
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void getItemOffsets(Rect outRect, final View view, final RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
Log.d(TAG, "getItemOffset() --> position = " + parent.getChildAdapterPosition(view));
final int position = parent.getChildAdapterPosition(view);
final int itemCount = parent.getAdapter().getItemCount();
parent.post(new Runnable() {
@Override
public void run() {
if (((GalleryRecyclerView) parent).getOrientation() == LinearLayoutManager.HORIZONTAL) {
onSetHoritiontalParams(parent, view, position, itemCount);
} else {
onSetVerticalParams(parent, view, position, itemCount);
}
}
});
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(v, position);
}
}
});
}
示例14: getItemOffsets
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void getItemOffsets(Rect outRect, View view, final RecyclerView parent, RecyclerView.State state) {
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) view.getLayoutParams();
final int sumCount = state.getItemCount();
final int position = params.getViewLayoutPosition();
final int spanSize;
final int index;
if (params instanceof GridLayoutManager.LayoutParams) {
GridLayoutManager.LayoutParams gridParams = (GridLayoutManager.LayoutParams) params;
spanSize = gridParams.getSpanSize();
index = gridParams.getSpanIndex();
if ((position == 0 || mOldItemCount != sumCount) && mSpanCount > 1) {
int countInLine = 0;
int spanIndex;
for (int tempPosition = sumCount - mSpanCount; tempPosition < sumCount; tempPosition++) {
spanIndex = ((GridLayoutManager) parent.getLayoutManager()).getSpanSizeLookup().getSpanIndex(tempPosition, mSpanCount);
countInLine = spanIndex == 0 ? 1 : countInLine + 1;
}
mItemCountInLastLine = countInLine;
if (mOldItemCount != sumCount) {
mOldItemCount = sumCount;
if (position != 0) {
parent.post(new Runnable() {
@Override
public void run() {
parent.invalidateItemDecorations();
}
});
}
}
}
} else if (params instanceof StaggeredGridLayoutManager.LayoutParams) {
spanSize = ((StaggeredGridLayoutManager.LayoutParams) params).isFullSpan() ? mSpanCount : 1;
index = ((StaggeredGridLayoutManager.LayoutParams) params).getSpanIndex();
} else {
spanSize = 1;
index = 0;
}
if (spanSize < 1 || index < 0 || spanSize > mSpanCount) {
return;
}
outRect.left = mSpace - mRadixX * index;
outRect.right = mRadixX + mRadixX * (index + spanSize - 1);
if (mSpanCount == 1 && position == sumCount - 1) {
outRect.bottom = mSpace;
} else if (position >= sumCount - mItemCountInLastLine && position < sumCount) {
outRect.bottom = mSpace;
}
outRect.top = mSpace;
}
示例15: createView
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("InflateParams")
public View createView(int titleTextColor, int backgroundDrawable, int backgroundColor,
int dividerBackground, int itemTextColor, int itemBackground,
int tintColor, BottomSheetItemClickListener itemClickListener) {
if (mFromMenu) {
mItems = createAdapterItems(dividerBackground, titleTextColor,
itemTextColor, itemBackground, tintColor);
}
LayoutInflater layoutInflater =LayoutInflater.from(mContext);
View sheet = mMode == BottomSheetBuilder.MODE_GRID ?
layoutInflater.inflate(R.layout.bottomsheetbuilder_sheet_grid, null)
: layoutInflater.inflate(R.layout.bottomsheetbuilder_sheet_list, null);
final RecyclerView recyclerView = (RecyclerView) sheet.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
if (backgroundDrawable != 0) {
sheet.setBackgroundResource(backgroundDrawable);
} else {
if (backgroundColor != 0) {
sheet.setBackgroundColor(backgroundColor);
}
}
// if we only have one title and it's the first item, set it as fixed.
if (mTitles == 1 && mMode == BottomSheetBuilder.MODE_LIST) {
BottomSheetItem header = mItems.get(0);
TextView headerTextView = (TextView) sheet.findViewById(R.id.textView);
if (header instanceof BottomSheetHeader) {
headerTextView.setVisibility(View.VISIBLE);
headerTextView.setText(header.getTitle());
if (titleTextColor != 0) {
headerTextView.setTextColor(titleTextColor);
}
mItems.remove(0);
}
}
final BottomSheetItemAdapter adapter = new BottomSheetItemAdapter(mItems, mMode,
itemClickListener);
if (mMode == BottomSheetBuilder.MODE_LIST) {
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
recyclerView.setAdapter(adapter);
} else {
final int columns = mContext.getResources().getInteger(R.integer.bottomsheet_grid_columns);
GridLayoutManager layoutManager = new GridLayoutManager(mContext, columns);
recyclerView.setLayoutManager(layoutManager);
recyclerView.post(new Runnable() {
@Override
public void run() {
float margin = mContext.getResources()
.getDimensionPixelSize(R.dimen.bottomsheet_grid_horizontal_margin);
adapter.setItemWidth((int) ((recyclerView.getWidth() - 2 * margin) / columns));
recyclerView.setAdapter(adapter);
}
});
}
return sheet;
}