1
當用戶滾動recyclerview時,我需要一個back_to_top按鈕來滾動時顯示,一個load_more按鈕在滾動時消失並在到達列表末尾時顯示。 OnScrollListener如下:如何在滾動時避免回收站抖動?
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);
}
}
});
此代碼有效。但問題是,如果在recyclerview正在滾動但尚未停止時,我會中斷並觸摸屏幕並執行另一個滾動手勢,否則回收站視圖的視圖會在移動時發生抖動。我想這是因爲我在代碼中使用dy參數,以便它跟蹤dy的值並導致視圖抖動?無論如何要避免這種震動,同時檢測用戶是否正在向上或向下滾動?
我試過了,還在抖。它像動亂一樣震動,不像動畫。 – Robin