国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RecycleView加載大量圖片卡頓優(yōu)化

這篇具有很好參考價值的文章主要介紹了RecycleView加載大量圖片卡頓優(yōu)化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

RecycleView實現類似相冊功能的時候,在加載大量圖片的時候,快速滑動的時候能感到明顯的卡頓,因此需要我們根據滑動狀態(tài)去做優(yōu)化。

一、解決思路

我們可以監(jiān)聽RecycleView滑動狀態(tài),當處于滑動狀態(tài)時,不進行圖片的加載,當滑動停止時才進行圖片的加載。網上解決方法基本都是這樣的,但是很多方法是調用網絡框架暫停請求加載來處理的,個人認為這種方法會影響到全局的網絡加載庫,所以應該采用notifyItemRangeChanged方式,去通知viewholder重新加載圖片。

二、代碼實現

在ViewHolder里增加一個RecycleView滑動標識,如果處于滑動狀態(tài)的話,就不要去加載圖片,而是給imageview一個占位圖

        //此處在viewholder setData方法里處理
        if (isScrolling) {
            //滾動狀態(tài)時,需要清空tag 并給imageview一個占位圖
            imageView.setTag(null);
            imageView.setImageResource(getResources().getDrawable(R.drawable.btn_forbid));
            return;
        } else {
            //之前沒有加載過了數據直接 return
            if (imageView.getTag() instanceof String && TextUtils.equals(imageUrl,(String)imageView.getTag())) {
                return;
            }
        }
        imageView.setTag(imageUrl);
        //此處調用你自己的網絡庫去加載imageUrl

給RecycleView設置滑動監(jiān)聽,將滑動狀態(tài)設置給adapter,當不在滑動時,需要手動調用notifyItemRangeChanged去通知adapter刷新數據文章來源地址http://www.zghlxwxcb.cn/news/detail-713218.html

        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                //停止滑動了
                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                    mAdapter.setScrolling(false);
                    int firstVisiblePosition = mGridLayoutManager.findFirstVisibleItemPosition();
                    int lastVisibleItemPosition = mGridLayoutManager.findLastVisibleItemPosition();
                    mAdapter.notifyItemRangeChanged(firstVisiblePosition, lastVisibleItemPosition);
                }
                //滑動狀態(tài)
                if (newState == RecyclerView.SCROLL_STATE_DRAGGING) {
                    //滑動
                    mAdapter.setScrolling(true);
                }
            }

            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
            }
        });

到了這里,關于RecycleView加載大量圖片卡頓優(yōu)化的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • RecycleView小結

    一級緩存:用于存放當前屏幕可顯示區(qū)域的ViewHolder,目的是為了方便更新數據,以及對View操作時更加快捷 二級緩存:用于緩存最近滑動出屏幕的ViewHolder,目的是為了當用戶將該View滑出屏幕外時又突然滑回來時能夠快速顯示,最多能緩存2個ViewHolder,不需要重新綁定數據,只

    2023年04月08日
    瀏覽(50)
  • RecycleView 二級列表(多級列表)

    RecycleView 二級列表(多級列表)

    RecyclerView做的二級列表比官方的ExpandableListView二級列表效率高一些貌似 1.自己的Adapter繼承RecyclerView.Adapter 2.然后搞兩個 int 類型的成員變量表示item是幾級 3. List里面這個就是數據源了 只不過這個存放的類型是個接口類型的數據 自己的一級item和二級item都去實現這個接口 然后這

    2023年04月08日
    瀏覽(12)
  • RecycleView基本使用及常見問題匯總

    RecycleView屬于android基礎組件,比較常用,下面總結下其使用的基礎流程及常見問題解決辦法(常見問題會定期更新) 基礎使用 首先在xml里引入RecycleView 編寫adapter,分以下幾步 1.創(chuàng)建自定義adapter類,創(chuàng)建內部類MyViewHolder,并實現RecycleView的ViewHolder,參數傳遞view 創(chuàng)建item layout,里

    2024年01月16日
    瀏覽(23)
  • 一個Adapter+recycleview實現多種布局,區(qū)分布局中

    一個Adapter+recycleview實現多種布局,區(qū)分布局中

    最近因為需要所以學習了一下recycleview,使用Adapter修飾器修飾,使用一個Adapter+recycleview實現多種布局,而不是之前的三個Adapter在同一個recycleview中實現三個布局。點擊區(qū)分布局中的gridview的圖片和姓名。 嗯~,算是之前的在同一個recycleview中實現三個不同布局的升級版吧。因為

    2024年01月20日
    瀏覽(27)
  • Android進階:ListView性能優(yōu)化異步加載圖片 使滑動效果流暢

    ListView? 是一種可以顯示一系列項目并能進行滾動顯示的 View,每一行的Item可能包含復雜的結構,可能會從網絡上獲取icon等的一些圖標信息,就現在的網絡速度要想保持ListView運行的很好滾動流暢是做不到的 所以這里就需要把這些信息利用多線程實現異步加載 實現這樣功能的

    2024年02月16日
    瀏覽(26)
  • 一個頁面需要加載大量的圖片,如何提升用戶體驗?

    當網站頁面需要加載大量圖片時,優(yōu)化用戶體驗非常關鍵,以下是一些方法來提升用戶體驗: 圖片懶加載(Lazy Loading) :只加載用戶可以看到的圖片,當用戶向下滾動頁面時,再加載其他圖片。這減少了頁面初始加載時間。 圖片壓縮 :使用工具壓縮圖片文件大小,而不顯著

    2024年02月19日
    瀏覽(50)
  • Android優(yōu)化RecyclerView圖片展示:Glide成堆加載批量Bitmap在RecyclerView成片繪制Canvas,Kotlin(b)

    對?Android GridLayoutManager Glide批量加載Bitmap繪制Canvas畫在RecyclerView,Kotlin(a)-CSDN博客 改進,用Glide批量把Bitmap加載出來,然后在RecyclerView成片成堆的繪制Canvas,此種實現是RecyclerView加載多宮格圖片展示,卡頓丟幀最低的一種實現,上下滑動流暢。 Android GridLayoutManager Glide批量

    2024年04月25日
    瀏覽(22)
  • Android UI性能優(yōu)化 檢測應用中的UI卡頓

    Android UI性能優(yōu)化 檢測應用中的UI卡頓

    } }; public static LogMonitor getInstance() { return sInstance; } public boolean isMonitor() { return mIoHandler.hasCallbacks(mLogRunnable); } public void startMonitor() { mIoHandler.postDelayed(mLogRunnable, TIME_BLOCK); } public void removeMonitor() { mIoHandler.removeCallbacks(mLogRunnable); } } 我們利用了HandlerThread這個類,同樣利用了Loope

    2024年04月14日
    瀏覽(32)
  • 記錄一次ScrollViewer控件 經過大量文本數據卡頓的原因

    ? 在 WPF 中,CanContentScroll 是 ScrollViewer 控件的一個附加屬性,它控制滾動視圖中的內容是否按項或像素來滾動。 當 CanContentScroll 設置為 false 時,表示 ScrollViewer 控件使用逐像素的滾動方式,這意味著滾動視圖中的內容會以像素為單位進行滾動。在這種情況下,如果您需要展示

    2024年02月06日
    瀏覽(17)
  • uni-app小程序加載圖片優(yōu)化

    uni-app小程序加載圖片優(yōu)化

    場景: 較大的圖片加載很慢,會出現較長時間的白屏,體驗感差。 ? 解決方案 :一進入頁面,圖片未加載成功前,進行l(wèi)oading…;圖片加載完成后會觸發(fā)@load事件;

    2024年02月11日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包