androidx.recyclerview.widget.RecyclerView#postDelayed ( )源码实例Demo

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

源代码1 项目: epoxy   文件: EpoxyModelTouchCallback.java
@Override
protected void clearView(final RecyclerView recyclerView, EpoxyViewHolder viewHolder) {
  super.clearView(recyclerView, viewHolder);
  //noinspection unchecked
  clearView((T) viewHolder.getModel(), viewHolder.itemView);

  // If multiple touch helpers are in use, one touch helper can pick up buffered touch inputs
  // immediately after another touch event finishes. This leads to things like a view being
  // selected for drag when another view finishes its swipe off animation. To prevent that we
  // keep the recyclerview marked as having an active selection for a brief period after a
  // touch event ends.
  recyclerView.postDelayed(new Runnable() {
    @Override
    public void run() {
      clearRecyclerViewSelectionMarker(recyclerView);
    }
  }, TOUCH_DEBOUNCE_MILLIS);
}
 
源代码2 项目: SearchPreference   文件: SearchPreferenceResult.java
private void doHighlight(final PreferenceFragmentCompat prefsFragment) {
    final Preference prefResult = prefsFragment.findPreference(getKey());

    if (prefResult == null) {
        Log.e("doHighlight", "Preference not found on given screen");
        return;
    }
    final RecyclerView recyclerView = prefsFragment.getListView();
    final RecyclerView.Adapter<?> adapter = recyclerView.getAdapter();
    if (adapter instanceof PreferenceGroup.PreferencePositionCallback) {
        PreferenceGroup.PreferencePositionCallback callback = (PreferenceGroup.PreferencePositionCallback) adapter;
        final int position = callback.getPreferenceAdapterPosition(prefResult);
        if (position != RecyclerView.NO_POSITION) {
            recyclerView.scrollToPosition(position);
            recyclerView.postDelayed(() -> {
                RecyclerView.ViewHolder holder = recyclerView.findViewHolderForAdapterPosition(position);
                if (holder != null) {
                    Drawable background = holder.itemView.getBackground();
                    if (Build.VERSION.SDK_INT >= 21 && background instanceof RippleDrawable) {
                        forceRippleAnimation((RippleDrawable) background);
                        return;
                    }
                }
                highlightFallback(prefsFragment, prefResult);
            }, 200);
            return;
        }
    }
    highlightFallback(prefsFragment, prefResult);
}
 
源代码3 项目: AndroidAnimationExercise   文件: BaseFragment.java
private void setupSkeleton(RecyclerView recyclerView, MyAdapter mAdapter) {
    final SkeletonScreen skeletonScreen = Skeleton.bind(recyclerView)
            .adapter(mAdapter)
            .shimmer(true)
            .angle(20)
            .frozen(false)
            .duration(500)
            .count(10)
            .load(R.layout.demo_info_skeleton_item)
            .show(); //default count is 10
    recyclerView.postDelayed(skeletonScreen::hide, 1000);
}
 
源代码4 项目: BaseProject   文件: BaseQuickAdapter.java
/**
 * check if full page after {@link #setNewData(List)}, if full, it will enable load more again.
 * <p>
 * 不是配置项!!
 * <p>
 * 这个方法是用来检查是否满一屏的,所以只推荐在 {@link #setNewData(List)} 之后使用
 * 原理很简单,先关闭 load more,检查完了再决定是否开启
 * <p>
 * 不是配置项!!
 *
 * @param recyclerView your recyclerView
 * @see #setNewData(List)
 */
public void disableLoadMoreIfNotFullPage(RecyclerView recyclerView) {
    setEnableLoadMore(false);
    if (recyclerView == null) return;
    RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
    if (manager == null) return;
    if (manager instanceof LinearLayoutManager) {
        final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) manager;
        recyclerView.postDelayed(new Runnable() {
            @Override
            public void run() {
                if (isFullScreen(linearLayoutManager)) {
                    setEnableLoadMore(true);
                }
            }
        }, 50);
    } else if (manager instanceof StaggeredGridLayoutManager) {
        final StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) manager;
        recyclerView.postDelayed(new Runnable() {
            @Override
            public void run() {
                final int[] positions = new int[staggeredGridLayoutManager.getSpanCount()];
                staggeredGridLayoutManager.findLastCompletelyVisibleItemPositions(positions);
                int pos = getTheBiggestNumber(positions) + 1;
                if (pos != getItemCount()) {
                    setEnableLoadMore(true);
                }
            }
        }, 50);
    }
}