首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android SwipeRefreshLayout 下拉刷新動畫卡住解決方案

     編輯:程式設計疑難解答

現象

使用 Google 官方 SwipeRefreshLayout 時,下拉刷新動畫偶爾無限轉動,無法自動消失,手動也無法停止。

原因

網絡請求完成後未調用 setRefreshing(false),或在子線程直接操作 UI 導致更新失效。

修正代碼

public void onRefresh() {
    new Handler(Looper.getMainLooper()).postDelayed(() -> {
        // 模擬網絡請求完成
        mSwipeLayout.setRefreshing(false); // 必須在主線程調用
    }, 5000);
}

最佳實踐

  • 網絡請求回調中調用 setRefreshing(false)。
  • 確保在主線程執行(用 runOnUiThread、Handler 或 LiveData 觀察)。
  • 添加超時保護:postDelayed 強制關閉動畫防止死轉。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved