最近做一個漫畫app,在閱讀漫畫界面需要通過獲取recyclerView的位置來實時更新界面上的圖片進度(比如1/9),
查閱資料得知了可以通過LayoutManager來獲取recyclerView的item位置信息。那么由於這里我的是一幅圖是整個屏幕大小,所以通過代碼:
LinearLayoutManager l = (LinearLayoutManager)recyclerView.getLayoutManager(); adapterNowPos = l.findFirstVisibleItemPosition(); allItems = l.getItemCount();
其中,adapterNowPos 就是當前的圖片位置,
allItems 則是recyclerView中的所有條目數量。
接下來需要搞定的就是動態通知了,於是我們給recyclerView添加一個滑動監聽器
完整的代碼如下:
recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener(){ @Override public void onScrolled(RecyclerView recyclerView,int dx,int dy){ super.onScrolled(recyclerView,dx,dy); LinearLayoutManager l = (LinearLayoutManager)recyclerView.getLayoutManager(); adapterNowPos = l.findFirstVisibleItemPosition(); allItems = l.getItemCount(); String s = adapterNowPos+1+"/"+allItems; comic_pic_state.setText(s);//設置圖片的數量 pic_state_top.setText(s); } });
這樣就完成了實時更新。
下面上圖: