@Override public void run() { recyclerView.setVisibility(View.VISIBLE); adapter.notifyItemInserted(adapter.getItemCount() - 1); recyclerView.smoothScrollToPosition(adapter.getItemCount() - 1); ejer.indholdFøjetTilTrin(trin); }
public final void jumpToTop(boolean animateChange) { if (animateChange) { // stopAnimation(); mRecyclerView.smoothScrollToPosition(0); } else { mRecyclerView.scrollToPosition(0); } }
@Override public boolean onOptionsItemSelected(MenuItem item) { NumberPickerDialog dialog; switch (item.getItemId()) { case R.id.action_add: dialog = new NumberPickerDialog(getActivity()); dialog.setTitle("Position to Add"); dialog.setPickerRange(0, mAdapter.getItemCount() - 1); dialog.setOnNumberSelectedListener( new NumberPickerDialog.OnNumberSelectedListener() { @Override public void onNumberSelected(int value) { mAdapter.addItem(value); } }); dialog.show(); return true; case R.id.action_remove: dialog = new NumberPickerDialog(getActivity()); dialog.setTitle("Position to Remove"); dialog.setPickerRange(0, mAdapter.getItemCount() - 1); dialog.setOnNumberSelectedListener( new NumberPickerDialog.OnNumberSelectedListener() { @Override public void onNumberSelected(int value) { mAdapter.removeItem(value); } }); dialog.show(); return true; case R.id.action_empty: mAdapter.setItemCount(0); return true; case R.id.action_small: mAdapter.setItemCount(5); return true; case R.id.action_medium: mAdapter.setItemCount(25); return true; case R.id.action_large: mAdapter.setItemCount(196); return true; case R.id.action_scroll_zero: mRecyclerView.scrollToPosition(0); return true; case R.id.action_smooth_zero: mRecyclerView.smoothScrollToPosition(0); return true; default: return super.onOptionsItemSelected(item); } }
@Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { // super.onScrollStateChanged(recyclerView, newState); try { switch (newState) { case RecyclerView.SCROLL_STATE_DRAGGING: if (isScrollAble) { offsetX = 0; isScrollAble = false; } break; case RecyclerView.SCROLL_STATE_SETTLING: break; case RecyclerView.SCROLL_STATE_IDLE: if (!isScrollAble) { if (Math.abs(offsetX) > itemWidth / 2) { if (offsetX >= 0) { recyclerView.smoothScrollToPosition(currentPos + 1); currentPos = currentPos + 1; } else { recyclerView.smoothScrollToPosition(currentPos - 1); currentPos = currentPos - 1; } } else { recyclerView.smoothScrollToPosition(currentPos); } offsetX = 0; isScrollAble = true; } break; } } catch (Exception e) { e.printStackTrace(); isScrollAble = true; currentPos = 0; offsetX = 0; recyclerView.smoothScrollToPosition(currentPos); } }
private void addRefreshItem() { if (itemList != null) { itemList.add(0, new ItemObject("refreshed two")); itemList.add(0, new ItemObject("refreshed one")); int insertPos = adapter.hasHeader() ? 1 : 0; adapter.notifyItemRangeInserted(insertPos, 2); if (!adapter.hasHeader()) { recyclerView.smoothScrollToPosition(0); } onRefreshSucced("refresh succeed"); return; } onRefreshFailed("refresh failed"); }
@Override public void onClick(View v) { if (Tools.isFastClick()) { return; } int id = v.getId(); if (R.id.fb_select_date_history_today == id) { popCalendar(); } else if (R.id.fb_scroll_to_top_history_today == id) { // 滚动到顶部 if (null != mRecyclerView) { mRecyclerView.smoothScrollToPosition(0); hideFb(); } } }
@Override public void onLoadFinished(Loader<Cursor> loader, Cursor data) { mForecastAdapter.swapCursor(data); new SendFirstItemData().execute(data); if (mPosition != RecyclerView.NO_POSITION) { // If we don't need to restart the loader, and there's a desired position to restore // to, do so now. mRecyclerView.smoothScrollToPosition(mPosition); } updateEmptyView(); // if (data.getCount() > 0) { if (data.getCount() == 0) { getActivity().supportStartPostponedEnterTransition(); } else { mRecyclerView .getViewTreeObserver() .addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { // Since we know we're going to get items, we keep the listener around until // we see Children. if (mRecyclerView.getChildCount() > 0) { mRecyclerView.getViewTreeObserver().removeOnPreDrawListener(this); int itemPosition = mForecastAdapter.getSelectedItemPosition(); if (RecyclerView.NO_POSITION == itemPosition) itemPosition = 0; RecyclerView.ViewHolder vh = mRecyclerView.findViewHolderForAdapterPosition(itemPosition); if (null != vh && mAutoSelectView) { mForecastAdapter.selectView(vh); } if (mHoldForTransition) { getActivity().supportStartPostponedEnterTransition(); } return true; } return false; } }); } }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == ADD_CODE && resultCode == Activity.RESULT_OK) { if (mySchedule == null) { mySchedule = new ArrayList<>(); Timetable obj = (Timetable) data.getSerializableExtra("newTimetable"); mySchedule.add(obj); noData.setVisibility(View.INVISIBLE); recyclerView.setVisibility(View.VISIBLE); recyclerAdapter = new MyScheduleRecyclerAdapter(mySchedule, ManageMySchedule.this); recyclerView.setAdapter(recyclerAdapter); } else { Timetable obj = (Timetable) data.getSerializableExtra("newTimetable"); // mySchedule.add(obj); recyclerView.smoothScrollToPosition(mySchedule.size()); recyclerAdapter.addNewItem(obj, mySchedule.size()); } } else if (requestCode == EDIT_CODE && resultCode == Activity.RESULT_OK) { } }
public void smoothScrollToPosition(int position) { recyclerView.smoothScrollToPosition(position); }
public void scrollToTop() { if (mAdapter.getItemCount() > 0) { mRecyclerView.smoothScrollToPosition(0); } }