Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.30 KB | None | 0 0
  1. mRecycleView.setOnScrollListener(new RecyclerView.OnScrollListener() {
  2. @Override
  3. public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
  4. super.onScrolled(recyclerView, dx, dy);
  5. int[] firstVisibleItemPositions = new int[getResources().getInteger(R.integer.news_numbers_column)];
  6. int pastVisiblesItems = ((StaggeredGridLayoutManager)getLayoutManager()).findFirstVisibleItemPositions(firstVisibleItemPositions)[0];
  7. }
  8. });
  9.  
  10. java.lang.NullPointerException: Attempt to invoke virtual method 'int android.support.v7.widget.OrientationHelper.getStartAfterPadding()' on a null object reference
  11. at android.support.v7.widget.StaggeredGridLayoutManager$Span.findOneVisibleChild(StaggeredGridLayoutManager.java:2177)
  12. at android.support.v7.widget.StaggeredGridLayoutManager$Span.findFirstVisibleItemPosition(StaggeredGridLayoutManager.java:2153)
  13. at android.support.v7.widget.StaggeredGridLayoutManager.findFirstVisibleItemPositions(StaggeredGridLayoutManager.java:806)
  14. at info.lanouvelletribune.apps.android.ui.fragments.NewsFragment$1.onScrollStateChanged(NewsFragment.java:90)
  15. at android.support.v7.widget.RecyclerView.setScrollState(RecyclerView.java:751)
  16. at android.support.v7.widget.RecyclerView.onInterceptTouchEvent(RecyclerView.java:1535)
  17. at com.github.ksoichiro.android.observablescrollview.ObservableRecyclerView.onInterceptTouchEvent(ObservableRecyclerView.java:188)
  18. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2060)
  19. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  20. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  21. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  22. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  23. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  24. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  25. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  26. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  27. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  28. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  29. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  30. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  31. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  32. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  33. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  34. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  35. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  36. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  37. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  38. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  39. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  40. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  41. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
  42. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
  43. at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2390)
  44. at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1741)
  45. at android.app.Activity.dispatchTouchEvent(Activity.java:2826)
  46. at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2351)
  47. at android.view.View.dispatchPointerEvent(View.java:8590)
  48. at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4098)
  49. at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3964)
  50. at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3488)
  51. at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3541)
  52. at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3507)
  53. at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3515)
  54. at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3488)
  55. at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3541)
  56. at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3507)
  57. at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3617)
  58. at android
  59.  
  60. int positionView = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
  61.  
  62. int position = layoutManager.findFirstVisibleItemPositions(null)[0];
  63.  
  64. layoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
  65. mrecyclerView.setLayoutManager(layoutManager );
  66.  
  67. try {
  68. ((StaggeredGridLayoutManager)getLayoutManager()).findFirstVisibleItemPositions(firstVisibleItemPositions);
  69. } catch (NullPointerException ex) {
  70. // workaround for RecyclerView bug. assume not laid out, so no items visible
  71. firstVisibleItemPositions[0] = RecyclerView.NO_POSITION;
  72. firstVisibleItemPositions[1] = RecyclerView.NO_POSITION;
  73. }
  74.  
  75. int[] firstVisibleItemPositions = new int[yourNumberOfColumns];
  76. int pastVisiblesItems = layoutManager.findFirstVisibleItemPositions(firstVisibleItem‌​Positions)[0];
  77.  
  78. final StaggeredGridLayoutManager linearLayoutManager = (StaggeredGridLayoutManager) mRecyclerViewAllPost.getLayoutManager();
  79. mRecyclerViewAllPost.addOnScrollListener(new RecyclerView.OnScrollListener() {
  80. @Override
  81. public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
  82. super.onScrolled(recyclerView, dx, dy);
  83.  
  84. int[] lastVisibleItemPositions = linearLayoutManager.findLastVisibleItemPositions(null);
  85. int lastVisibleItem = getLastVisibleItem(lastVisibleItemPositions);
  86. int totalItemCount = linearLayoutManager.getItemCount();
  87. if (!isLoading && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
  88. print("load more item ");
  89. isLoading = true;
  90. }
  91. }
  92. });
  93.  
  94. public int getLastVisibleItem(int[] lastVisibleItemPositions) {
  95. int maxSize = 0;
  96. for (int i = 0; i < lastVisibleItemPositions.length; i++) {
  97. if (i == 0) {
  98. maxSize = lastVisibleItemPositions[i];
  99. }
  100. else if (lastVisibleItemPositions[i] > maxSize) {
  101. maxSize = lastVisibleItemPositions[i];
  102. }
  103. }
  104. return maxSize;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement