2017-07-21 7 views
1

ユーザーがrecyclerviewをスクロールすると、スクロールアップ時にはback_to_topボタンが表示され、スクロールアップ時には表示されず、リストの最後に到達すると表示されます。 OnScrollListenerは次のとおりです。スクロール中にrecyclerviewを振るのを避けるには?

mRecyclerViewHome.addOnScrollListener(new OnScrollListener() { 
      @Override 
      public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
       super.onScrolled(recyclerView, dx, dy); 

       int visibleItemCount = layoutManager.getChildCount(); 
       int totalItemCount = layoutManager.getItemCount(); 
       int pastVisibleItems = layoutManager.findFirstVisibleItemPosition(); 
       if (pastVisibleItems + visibleItemCount >= totalItemCount) { 
        mButtonLoadMore.setVisibility(View.VISIBLE); 
        Log.i(TAG, "reach bottom detected"); 
       } 

       // TODO: 7/20/2017 remove shaking 
       if (dy < 0) { // scrolling up 
        mButtonLoadMore.setVisibility(GONE); 
        mButtonToTop.setVisibility(VISIBLE); 
       } 

       if (dy > 0) { 
        mButtonToTop.setVisibility(GONE); 
       } 
      } 
     }); 

このコードは機能します。しかし、問題は、もしリサイクラビューがスクロールしていてまだ止まっていない間に、私が中断して画面に触れ、別のスクロールジェスチャをすると、リサイクルビューの動きが動いているということです。私はそれがコードのdyパラメータを使用しているので、dyの値を追跡して、表示が揺れてしまうので、それはだと思いますか?ユーザーが上下にスクロールしているかどうかを検出しながら、この揺れを避けるためにとにかくありますか?

答えて

1

あなたは、私はそれはまだ揺れ、試したアイテムのアニメーターに

mRecyclerViewHome.setItemAnimator(null); 
+0

を無効にしてみてくださいすることができます。それは、アニメーションのようなものではなく、無秩序のように振る。 – Robin

関連する問題