当前位置: 首页>>代码示例>>Java>>正文


Java RecyclerView.post方法代码示例

本文整理汇总了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);
}
 
开发者ID:alibaba,项目名称:Tangram-Android,代码行数:29,代码来源:TangramEngine.java

示例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;
  }
}
 
开发者ID:dbof10,项目名称:redux-observable,代码行数:20,代码来源:InfiniteScrollListener.java

示例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);
            }
        }
    });

}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:31,代码来源:BaseQuickAdapter.java

示例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);
                }
            });
        }
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:13,代码来源:ScrollingUtil.java

示例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);
                }
            });
        }
    };
}
 
开发者ID:prakh25,项目名称:MovieApp,代码行数:13,代码来源:HomePeopleFragment.java

示例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);
        }
    });

}
 
开发者ID:ryanlijianchang,项目名称:Recyclerview-Gallery,代码行数:45,代码来源:ScrollManager.java

示例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();
        }
    });
}
 
开发者ID:DuanJiaNing,项目名称:Musicoco,代码行数:34,代码来源:SheetSongListController.java

示例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);
        }
    });
}
 
开发者ID:ryanlijianchang,项目名称:Recyclerview-Gallery,代码行数:39,代码来源:ScrollManager.java

示例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());
        }
    });
}
 
开发者ID:yangchaojiang,项目名称:ZoomPreviewPicture,代码行数:34,代码来源:GridStyleActivity.java

示例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;
}
 
开发者ID:wayfair,项目名称:brickkit-android,代码行数:15,代码来源:StickyViewBehavior.java

示例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;
}
 
开发者ID:yuhodev,项目名称:login,代码行数:31,代码来源:RoutePager.java

示例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();
        }
    }
 
开发者ID:angcyo,项目名称:RLibrary,代码行数:34,代码来源:StickLayout2.java

示例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);
            }
        }
    });
}
 
开发者ID:ryanlijianchang,项目名称:Recyclerview-Gallery,代码行数:30,代码来源:GalleryItemDecoration.java

示例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;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:57,代码来源:SpacesItemDecoration.java

示例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;
}
 
开发者ID:yuhodev,项目名称:login,代码行数:63,代码来源:BottomSheetAdapterBuilder.java


注:本文中的android.support.v7.widget.RecyclerView.post方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。