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


Java RecyclerView.scrollToPosition方法代码示例

本文整理汇总了Java中android.support.v7.widget.RecyclerView.scrollToPosition方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.scrollToPosition方法的具体用法?Java RecyclerView.scrollToPosition怎么用?Java RecyclerView.scrollToPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.support.v7.widget.RecyclerView的用法示例。


在下文中一共展示了RecyclerView.scrollToPosition方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: scrollToRightPositionWhenItemChanged

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
     * 当item位置变换,滚动recycler到正确的位置
     * TODO: 2017/2/21 0021 整理更优雅的写法  还有scrollToPosition(0)是否必要?
     */
    private void scrollToRightPositionWhenItemChanged(RecyclerView recyclerView, View itemView, int itemPos) {
        final RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
        if (layoutManager instanceof ItemTouchHelper.ViewDropHandler) {
            OrientationHelper helper = OrientationHelper.createVerticalHelper(layoutManager);
            int start = helper.getDecoratedStart(itemView);
            int end = helper.getDecoratedEnd(itemView);
            ((LinearLayoutManager) layoutManager).scrollToPositionWithOffset(
                    itemPos, lastItemPos > itemPos ? start : end - itemViewHeight);
//                System.out.println(lastItemPos + "-" + childPos + "OrientationHelperOrientationHelper:"
//                        + height + "==" + itemViewHeight + "=||=" + start + "===" + end + "||||||" + myStart + "===" + itemTargetView.getHeight() );
        }
        if (lastItemPos == 0 || itemPos == 0) {
            recyclerView.scrollToPosition(0);
        }
    }
 
开发者ID:free46000,项目名称:MultiItem,代码行数:20,代码来源:ItemDragHelper.java

示例2: onMoved

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public void onMoved(RecyclerView recyclerView, ViewHolder viewHolder, int fromPos, ViewHolder target, int toPos, int x, int y) {
    LayoutManager layoutManager = recyclerView.getLayoutManager();
    if (layoutManager instanceof ViewDropHandler) {
        ((ViewDropHandler) layoutManager).prepareForDrop(viewHolder.itemView, target.itemView, x, y);
        return;
    }
    if (layoutManager.canScrollHorizontally()) {
        if (layoutManager.getDecoratedLeft(target.itemView) <= recyclerView.getPaddingLeft()) {
            recyclerView.scrollToPosition(toPos);
        }
        if (layoutManager.getDecoratedRight(target.itemView) >= recyclerView.getWidth() - recyclerView.getPaddingRight()) {
            recyclerView.scrollToPosition(toPos);
        }
    }
    if (layoutManager.canScrollVertically()) {
        if (layoutManager.getDecoratedTop(target.itemView) <= recyclerView.getPaddingTop()) {
            recyclerView.scrollToPosition(toPos);
        }
        if (layoutManager.getDecoratedBottom(target.itemView) >= recyclerView.getHeight() - recyclerView.getPaddingBottom()) {
            recyclerView.scrollToPosition(toPos);
        }
    }
}
 
开发者ID:JackChan1999,项目名称:letv,代码行数:24,代码来源:ItemTouchHelper.java

示例3: syncOffset

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public static boolean syncOffset(SmoothAppBarLayout smoothAppBarLayout, View target, int verticalOffset, View scroll) {
  boolean isSelected = target == scroll;
  if (scroll instanceof NestedScrollView) {
    NestedScrollView nestedScrollView = (NestedScrollView) scroll;
    if (nestedScrollView.getScrollY() < verticalOffset || (!isSelected && isScrollToTop(target))) {
      nestedScrollView.scrollTo(0, verticalOffset);
    }
    if (isSelected && (nestedScrollView.getScrollY() < verticalOffset || verticalOffset == 0)) {
      nestedScrollView.scrollTo(0, 0);
      smoothAppBarLayout.syncOffset(0);
    }
  } else if (scroll instanceof RecyclerView) {
    RecyclerView recyclerView = (RecyclerView) scroll;
    boolean isAccuracy = recyclerView.getLayoutManager().findViewByPosition(ObservableRecyclerView.HEADER_VIEW_POSITION) != null;
    if (isAccuracy && recyclerView.computeVerticalScrollOffset() < verticalOffset) {
      recyclerView.scrollBy(0, verticalOffset - recyclerView.computeVerticalScrollOffset());
    } else if (!isSelected && isScrollToTop(target)) {
      recyclerView.scrollToPosition(ObservableRecyclerView.HEADER_VIEW_POSITION);
    }
    if (isAccuracy && isSelected && (recyclerView.computeVerticalScrollOffset() < verticalOffset || verticalOffset == 0)) {
      recyclerView.scrollToPosition(ObservableRecyclerView.HEADER_VIEW_POSITION);
      smoothAppBarLayout.syncOffset(0);
    }
  }
  return true;
}
 
开发者ID:PacktPublishing,项目名称:Expert-Android-Programming,代码行数:27,代码来源:Utils.java

示例4: scrollToTop

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public void scrollToTop(RecyclerView recyclerView) {
    if (null == recyclerView) return;
    RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
    int firstVisibleItemPosition = 0;
    if (manager instanceof LinearLayoutManager) {
        firstVisibleItemPosition = getFirstVisibleItemPosition((LinearLayoutManager) manager);
    } else if (manager instanceof StaggeredGridLayoutManager) {
        firstVisibleItemPosition = getFirstVisibleItemPosition((StaggeredGridLayoutManager) manager);
    }
    if (firstVisibleItemPosition > 3) {
        recyclerView.scrollToPosition(0);
    } else {
        backToFinish(recyclerView);
    }
}
 
开发者ID:alphater,项目名称:garras,代码行数:16,代码来源:BaseFragment.java

示例5: onCreateView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.recyclerview_environmentalsensor,
            container, false);
    rootView.setTag(TAG);

    mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview_environmentalsensor);

    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.scrollToPosition(0);

    mListAdapter = new EnvironmentalSensorsListAdapter(mSensors,
            new EnvironmentalSensorsListAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(EnvironmentalSensor item) {
            mCallbacks.onItemSelected(item.getAddress());
        }
    });
    // Set CustomAdapter as the adapter for RecyclerView.
    mRecyclerView.setAdapter(mListAdapter);

    mViewModel = EnvironmentalSensorsActivity.obtainViewModel(getActivity());

    return rootView;
}
 
开发者ID:igrow-systems,项目名称:igrow-android,代码行数:29,代码来源:EnvironmentalSensorsFragment.java

示例6: setFooterViewState

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * 设置headerAndFooterAdapter的FooterView State
 *
 * @param context      context
 * @param recyclerView  recyclerView
 * @param pageSize      分页展示时,recyclerView每一页的数量
 * @param state         FooterView State
 * @param errorListener FooterView处于Error状态时的点击事件
 */
public static void setFooterViewState(Context context, RecyclerView recyclerView, int pageSize, LoadingFooter.State state, View.OnClickListener errorListener) {

    RecyclerView.Adapter outerAdapter = recyclerView.getAdapter();

    if (outerAdapter == null || !(outerAdapter instanceof HeaderAndFooterRecyclerViewAdapter)) {
        return;
    }

    HeaderAndFooterRecyclerViewAdapter headerAndFooterAdapter = (HeaderAndFooterRecyclerViewAdapter) outerAdapter;

    //只有一页的时候,就别加什么FooterView了
    if (headerAndFooterAdapter.getInnerAdapter().getItemCount() < pageSize) {
        return;
    }

    LoadingFooter footerView;

    //已经有footerView了
    if (headerAndFooterAdapter.getFooterViewsCount() > 0) {
        footerView = (LoadingFooter) headerAndFooterAdapter.getFooterView();
        footerView.setState(state);

        if (state == LoadingFooter.State.NetWorkError) {
            footerView.setOnClickListener(errorListener);
        }
        recyclerView.scrollToPosition(headerAndFooterAdapter.getItemCount() - 1);
    } else {
        footerView = new LoadingFooter(context);
        footerView.setState(state);

        if (state == LoadingFooter.State.NetWorkError) {
            footerView.setOnClickListener(errorListener);
        }

        headerAndFooterAdapter.addFooterView(footerView);
        recyclerView.scrollToPosition(headerAndFooterAdapter.getItemCount() - 1);
    }
}
 
开发者ID:yinyiliang,项目名称:RabbitCloud,代码行数:48,代码来源:RecyclerViewStateUtils.java

示例7: initView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
    public void initView(View rootView) {
        mOnLoadMoreListener = new OnLoadMoreListener() {
            @Override
            public void loadMore() {
                mPresenter.loadMoreDatas();
//                mAdapter.showFooter();
                mRecyclerView.scrollToPosition(mAdapter.getItemCount() - 1);
            }
        };
        mSwipRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(R.id.swiperefreshlayout);
        mSwipRefreshLayout.setColorSchemeResources(R.color.colorArticle, R.color.colorIHistory, R.color.colorMore);
        mSwipRefreshLayout.setOnRefreshListener(this);
        mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview);
        mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                if (mCurrentState == STATE_MORE_LOADED && RecyclerView.SCROLL_STATE_IDLE == newState && calculateRecyclerViewFirstPosition() == mRecyclerView.getAdapter().getItemCount() - 1 && mOnLoadMoreListener != null) {
                    mOnLoadMoreListener.loadMore();
                    mCurrentState = STATE_MORE_LOADING;
                }
            }
        });

        mCircleLoadingView = (CircleLoadingView) rootView.findViewById(R.id.circle_loading);
        mCircleLoadingView.setDrawableColor(R.color.colorAccent);
        mPresenter = new IPhotoListPresenterImpl(this, mPhotoId, 1);
    }
 
开发者ID:shenhuanet,项目名称:OpenEyesReading-android,代码行数:30,代码来源:PhotoListFrag.java

示例8: onCreateView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
  Bundle args = getArguments();
  photoSize = args.getInt(IMAGE_SIZE_KEY);
  thumbnail = args.getBoolean(THUMBNAIL_KEY);

  fullRequest = GlideApp.with(this)
      .asDrawable()
      .centerCrop()
      .transition(withNoTransition());

  thumbnailRequest = GlideApp.with(this)
      .asDrawable()
      .diskCacheStrategy(DiskCacheStrategy.DATA)
      .centerCrop()
      .override(Api.SQUARE_THUMB_SIZE)
      .transition(withNoTransition());

  preloadRequest =
      thumbnail ? thumbnailRequest.clone().priority(Priority.HIGH) : fullRequest;

  final View result = inflater.inflate(R.layout.flickr_photo_grid, container, false);

  final int gridMargin = getResources().getDimensionPixelOffset(R.dimen.grid_margin);
  int spanCount = getResources().getDisplayMetrics().widthPixels / (photoSize + (2 * gridMargin));
  grid = (RecyclerView) result.findViewById(R.id.flickr_photo_grid);
  layoutManager = new GridLayoutManager(getActivity(), spanCount);
  grid.setLayoutManager(layoutManager);

  grid.addItemDecoration(new RecyclerView.ItemDecoration() {
    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
        RecyclerView.State state) {
      outRect.set(gridMargin, gridMargin, gridMargin, gridMargin);
    }
  });
  grid.setRecyclerListener(new RecyclerView.RecyclerListener() {
    @Override
    public void onViewRecycled(RecyclerView.ViewHolder holder) {
      PhotoViewHolder photoViewHolder = (PhotoViewHolder) holder;
      GlideApp.with(FlickrPhotoGrid.this).clear(photoViewHolder.imageView);
    }
  });

  int heightCount = getResources().getDisplayMetrics().heightPixels / photoSize;
  grid.getRecycledViewPool().setMaxRecycledViews(0, spanCount * heightCount * 2);
  grid.setItemViewCacheSize(0);
  adapter = new PhotoAdapter();
  grid.setAdapter(adapter);

  FixedPreloadSizeProvider<Photo> preloadSizeProvider =
      new FixedPreloadSizeProvider<>(photoSize, photoSize);
  RecyclerViewPreloader<Photo> preloader = new RecyclerViewPreloader<>(Glide.with(this), adapter,
      preloadSizeProvider, args.getInt(PRELOAD_KEY));
  grid.addOnScrollListener(preloader);

  if (currentPhotos != null) {
    adapter.setPhotos(currentPhotos);
  }

  if (savedInstanceState != null) {
    int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
    grid.scrollToPosition(index);
  }

  return result;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:69,代码来源:FlickrPhotoGrid.java

示例9: onCreateView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public View onCreateView(
    @NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  Bundle args = Preconditions.checkNotNull(getArguments());
  photoSize = args.getInt(IMAGE_SIZE_KEY);
  thumbnail = args.getBoolean(THUMBNAIL_KEY);

  fullRequest = GlideApp.with(this)
      .asDrawable()
      .centerCrop();

  thumbnailRequest = GlideApp.with(this)
      .asDrawable()
      .centerCrop()
      .override(Api.SQUARE_THUMB_SIZE);

  preloadRequest =
      thumbnail ? thumbnailRequest.clone().priority(Priority.HIGH) : fullRequest;

  final View result = inflater.inflate(R.layout.flickr_photo_grid, container, false);

  final int gridMargin = getResources().getDimensionPixelOffset(R.dimen.grid_margin);
  int spanCount = getResources().getDisplayMetrics().widthPixels / (photoSize + (2 * gridMargin));
  grid = (RecyclerView) result.findViewById(R.id.flickr_photo_grid);
  layoutManager = new GridLayoutManager(getActivity(), spanCount);
  grid.setLayoutManager(layoutManager);

  grid.addItemDecoration(new RecyclerView.ItemDecoration() {
    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
        RecyclerView.State state) {
      outRect.set(gridMargin, gridMargin, gridMargin, gridMargin);
    }
  });
  grid.setRecyclerListener(new RecyclerView.RecyclerListener() {
    @Override
    public void onViewRecycled(RecyclerView.ViewHolder holder) {
      PhotoViewHolder photoViewHolder = (PhotoViewHolder) holder;
      GlideApp.with(FlickrPhotoGrid.this).clear(photoViewHolder.imageView);
    }
  });

  int heightCount = getResources().getDisplayMetrics().heightPixels / photoSize;
  grid.getRecycledViewPool().setMaxRecycledViews(0, spanCount * heightCount * 2);
  grid.setItemViewCacheSize(0);
  adapter = new PhotoAdapter();
  grid.setAdapter(adapter);

  FixedPreloadSizeProvider<Photo> preloadSizeProvider =
      new FixedPreloadSizeProvider<>(photoSize, photoSize);
  RecyclerViewPreloader<Photo> preloader = new RecyclerViewPreloader<>(Glide.with(this), adapter,
      preloadSizeProvider, args.getInt(PRELOAD_KEY));
  grid.addOnScrollListener(preloader);

  if (currentPhotos != null) {
    adapter.setPhotos(currentPhotos);
  }

  if (savedInstanceState != null) {
    int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
    grid.scrollToPosition(index);
  }

  return result;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:66,代码来源:FlickrPhotoGrid.java

示例10: checkSelectedItemVisibility

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private void checkSelectedItemVisibility(RecyclerView listView, int position) {
    listView.scrollToPosition(position);
}
 
开发者ID:Tamicer,项目名称:FilterBar,代码行数:4,代码来源:RegionContainer.java

示例11: perform

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public void perform(UiController uiController, View view) {
    RecyclerView recyclerView = (RecyclerView) view;
    recyclerView.scrollToPosition(this.position);
}
 
开发者ID:graviton57,项目名称:DOUSalaries,代码行数:5,代码来源:TestUtils.java

示例12: clear

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public void clear(RecyclerView recyclerView) {
    onDataSetChangeListener.onClearAll();
    displayList.clear();
    notifyDataSetChanged();
    recyclerView.scrollToPosition(0);
}
 
开发者ID:TellH,项目名称:RecyclerStickyHeaderView,代码行数:7,代码来源:StickyHeaderViewAdapter.java

示例13: setAdapterOnRecyclerView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
protected void setAdapterOnRecyclerView(@NonNull RecyclerView recyclerView) {
    super.setAdapterOnRecyclerView(recyclerView);
    recyclerView.scrollToPosition(positionToScroll);
}
 
开发者ID:wulkanowy,项目名称:wulkanowy,代码行数:6,代码来源:TimetableFragmentTab.java

示例14: onAttachedToRecyclerView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    //-3 for position the last clicked item below to the top of the view
    recyclerView.scrollToPosition(mSelectedPosition >= 3 ? mSelectedPosition - 3 : 0);
}
 
开发者ID:mkeresztes,项目名称:AndiCar,代码行数:6,代码来源:BaseViewAdapter.java


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