From 20d84ebd9ad20d2b2bdd3a82de2a968f38898294 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 09 四月 2025 21:08:09 +0800
Subject: [PATCH] 2025年04月09日21:08:06

---
 app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java    |   80 ++++++-
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java  |  100 ++++++---
 app/src/main/res/layout/fragment_message.xml                                     |    5 
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java |  121 ++++++----
 app/src/main/res/layout/activity_device_search.xml                               |    4 
 app/src/main/res/layout/item_message_c.xml                                       |    1 
 app/src/main/res/layout/activity_house_search.xml                                |    4 
 app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java            |   98 ++++++--
 app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java     |   93 +++++--
 app/src/main/res/layout/activity_power_stations_move.xml                         |    6 
 app/src/main/res/layout/activity_search_messge.xml                               |    4 
 app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java        |   76 +++++-
 app/src/main/res/layout/activity_power_stations_list.xml                         |    6 
 app/src/main/res/layout/activity_message_center_list.xml                         |   12 
 14 files changed, 425 insertions(+), 185 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java
index 0817798..f7eaead 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java
@@ -3,7 +3,10 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.os.AsyncTask;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
@@ -31,6 +34,8 @@
 import com.hdl.photovoltaic.ui.adapter.SearchMessageAdapter;
 import com.hdl.photovoltaic.ui.bean.MessageBean;
 import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils;
+import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
+import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -40,6 +45,9 @@
  * 娑堟伅鎼滅储鐣岄潰
  */
 public class SearchMessageActivity extends CustomBaseActivity {
+
+    private Handler handler;
+    private Runnable delayedRunnable;
 
     private ActivitySearchMessgeBinding viewBinding;
 
@@ -90,6 +98,53 @@
         }
     }
 
+    /**
+     * 涓嬫媺鍒锋柊鐨勯�昏緫
+     */
+    protected void pullToRefresh() {
+        viewBinding.listSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+                handler = new Handler(Looper.getMainLooper());
+
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.listSrl.endRefreshing();
+                        loadNextPageMessageList(true, 1, viewBinding.messageSearchEt.getText().toString(), true);
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 1000);
+            }
+
+
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+
+                handler = new Handler(Looper.getMainLooper());
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.listSrl.endLoadingMore();
+                        if (!isLoadingMore) {
+                            // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+                            loadNextPageMessageList(false, ++mCurrentPage, viewBinding.messageSearchEt.getText().toString(), false);
+                        }
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 10);
+
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.listSrl.setRefreshViewHolder(hdlRefreshViewHolder);
+    }
 
     private void initEvent() {
 
@@ -117,38 +172,6 @@
                 viewBinding.listParent.setVisibility(View.VISIBLE);
                 addSearchTextToList();
                 loadNextPageMessageList(true, 1, viewBinding.messageSearchEt.getText().toString(), true);
-            }
-        });
-
-
-        //涓嬫媺绠ご棰滆壊
-        viewBinding.listSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        //涓嬫媺璇诲彇
-        viewBinding.listSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                viewBinding.listSrl.setRefreshing(false);
-                loadNextPageMessageList(true, 1, viewBinding.messageSearchEt.getText().toString(), true);
-            }
-        });
-        //涓婃媺璇诲彇
-        viewBinding.listRcv.addOnScrollListener(new RecyclerView.OnScrollListener() {
-            @Override
-            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
-                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
-                if (layoutManager == null) {
-                    return;
-                }
-                int visibleItemCount = layoutManager.getChildCount();
-                int totalItemCount = layoutManager.getItemCount();
-                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
-                if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
-                    if (!isLoadingMore) {
-                        // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
-                        HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
-                        loadNextPageMessageList(false, ++mCurrentPage, viewBinding.messageSearchEt.getText().toString(), false);
-                    }
-                }
             }
         });
         //娓呴櫎
@@ -246,6 +269,7 @@
                 viewBinding.messageSearchEt.requestFocus();
             }
         });
+        pullToRefresh();
 
         //鍦ㄧ晫闈腑浣跨敤
         KeyboardStateObserverUtils.getKeyboardStateObserver(_mActivity).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() {
@@ -321,6 +345,9 @@
         if (searchHistoryTitleList.size() > 0) {
             HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath());
             HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(searchHistoryTitleList));
+        }
+        if (handler != null && delayedRunnable != null) {
+            handler.removeCallbacks(delayedRunnable);
         }
         super.onDestroy();
     }
@@ -471,4 +498,6 @@
     public String getHistoryFileNamePath() {
         return HdlFileLogic.getInstance().getCurrentUserRootPath() + "/message.txt";
     }
+
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
index 476ebb8..301c545 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
@@ -4,6 +4,8 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.view.View;
 import android.widget.TextView;
 
@@ -34,6 +36,8 @@
 import com.hdl.photovoltaic.ui.newC.adapter.MessageCenterListAdapter;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.widget.TypeTitleListDialog;
+import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
+import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 
 import org.greenrobot.eventbus.Subscribe;
@@ -48,6 +52,9 @@
  * C绔秷鎭腑蹇冨垪琛�
  */
 public class MessageCenterList extends CustomBaseActivity {
+
+    private Handler handler;
+    private Runnable delayedRunnable;
 
     private ActivityMessageCenterListBinding viewBinding;
 
@@ -106,6 +113,14 @@
         super.onResume();
         //杩涙潵璇诲彇涓�娆℃暟鎹�(涓轰簡鏇存柊currentPage锛宑urrentTotal杩欎釜鍊�)
 //        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
+    }
+
+    @Override
+    protected void onDestroy() {
+        if (handler != null && delayedRunnable != null) {
+            handler.removeCallbacks(delayedRunnable);
+        }
+        super.onDestroy();
     }
 
     private void initEvent() {
@@ -281,38 +296,6 @@
 
             }
         });
-
-        //涓嬫媺鎸夐挳
-        viewBinding.messageContentSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        viewBinding.messageContentSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                viewBinding.messageContentSrl.setRefreshing(false);
-                loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
-            }
-        });
-        //涓婃媺鎸夐挳
-        viewBinding.messageContentRl.addOnScrollListener(new RecyclerView.OnScrollListener() {
-            @Override
-            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
-//                super.onScrolled(recyclerView, dx, dy);
-
-                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
-                if (layoutManager == null) {
-                    return;
-                }
-                int visibleItemCount = layoutManager.getChildCount();
-                int totalItemCount = layoutManager.getItemCount();
-                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
-                if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
-                    if (!isLoadingMore) {
-                        // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
-                        HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
-                        loadNextPageMessageList(++mCurrentPage, false, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
-                    }
-                }
-            }
-        });
         if (messageCenterListAdapter != null) {
             messageCenterListAdapter.setNoOnclickListener(new MessageCenterListAdapter.OnclickListener() {
                 @Override
@@ -343,7 +326,9 @@
         viewBinding.messageContentRl.setAdapter(messageCenterListAdapter);
         messageCenterListAdapter.setList(mList);
 //        this.nullDataUpdateUi();
+        pullToRefresh();
     }
+
 
     private void initData() {
         try {
@@ -366,6 +351,55 @@
     }
 
     /**
+     * 涓嬫媺鍒锋柊鐨勯�昏緫
+     */
+    protected void pullToRefresh() {
+        viewBinding.messageContentSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+                handler = new Handler(Looper.getMainLooper());
+
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.messageContentSrl.endRefreshing();
+                        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 1000);
+            }
+
+
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+
+                handler = new Handler(Looper.getMainLooper());
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.messageContentSrl.endLoadingMore();
+                        if (!isLoadingMore) {
+                            // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+                            HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+                            loadNextPageMessageList(++mCurrentPage, false, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
+                        }
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 10);
+
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.messageContentSrl.setRefreshViewHolder(hdlRefreshViewHolder);
+    }
+
+    /**
      * 鍔犺浇涓�椤垫暟鎹�
      *
      * @param pageNo                  椤垫暟
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
index efa0636..66a54a7 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
@@ -5,6 +5,8 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.os.SystemClock;
 import android.text.TextUtils;
 import android.util.Log;
@@ -37,6 +39,8 @@
 import com.hdl.photovoltaic.utils.PermissionUtils;
 import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
 import com.hdl.photovoltaic.widget.PermissionExplanationDialog;
+import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
+import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 
 import org.greenrobot.eventbus.Subscribe;
@@ -50,6 +54,8 @@
  * C绔數绔欏垪琛ㄧ紪杈�
  */
 public class PowerStationsListEdit extends CustomBaseActivity {
+    private Handler handler;
+    private Runnable delayedRunnable;
     private ActivityPowerStationsListBinding viewBinding;//鏄惁鍦ㄧ紪杈戠姸鎬�
 
     private HouseListAdapter houseListAdapter;
@@ -101,15 +107,6 @@
             }
         });
 
-        //璁剧疆涓嬫媺绠ご棰滆壊
-        viewBinding.fragmentHouseSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        //鍒楄〃涓嬫媺鎸夐挳
-        viewBinding.fragmentHouseSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                downReadData(true);
-            }
-        });
         if (houseListAdapter != null) {
             houseListAdapter.setOnItemClickListener(new HouseListAdapter.OnItemClickListener() {
                 @Override
@@ -165,6 +162,52 @@
         viewBinding.fragmentHouseSrlListRc.setAdapter(houseListAdapter);
         houseListAdapter.setList(this.houseListBeanIDList);
         this.nullDataUpdateUi(houseListBeanIDList);
+        pullToRefresh();
+    }
+
+    /**
+     * 涓嬫媺鍒锋柊鐨勯�昏緫
+     */
+    protected void pullToRefresh() {
+        viewBinding.fragmentHouseSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+                handler = new Handler(Looper.getMainLooper());
+
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.fragmentHouseSrl.endRefreshing();
+                        downReadData(true);
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 1000);
+            }
+
+
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+
+                handler = new Handler(Looper.getMainLooper());
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.fragmentHouseSrl.endLoadingMore();
+
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 10);
+
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.fragmentHouseSrl.setRefreshViewHolder(hdlRefreshViewHolder);
     }
 
     /**
@@ -173,6 +216,9 @@
      * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
      */
     private void downReadData(boolean isRefreshing) {
+        if (isRefreshing) {
+            showLoading();
+        }
         //鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃
         HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
             @Override
@@ -182,7 +228,7 @@
                     public void run() {
                         if (isRefreshing) {
                             //鍏抽棴涓嬫媺鍒锋柊鐨勫湀鍦�
-                            viewBinding.fragmentHouseSrl.setRefreshing(false);
+                            hideLoading();
                         }
                         if (list != null && !list.isEmpty()) {
                             if (!comparableList(houseListBeanIDList, list)) {
@@ -214,7 +260,7 @@
                     public void run() {
                         if (isRefreshing) {
                             //鍏抽棴涓嬫媺鍒锋柊鐨勫湀鍦�
-                            viewBinding.fragmentHouseSrl.setRefreshing(false);
+                            hideLoading();
                         }
 
                         HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
@@ -410,4 +456,12 @@
         } catch (Exception e) {
         }
     }
+
+    @Override
+    protected void onDestroy() {
+        if (handler != null && delayedRunnable != null) {
+            handler.removeCallbacks(delayedRunnable);
+        }
+        super.onDestroy();
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java
index 9ef7f82..17d04a5 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java
@@ -2,6 +2,8 @@
 
 
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.view.View;
 
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -19,6 +21,8 @@
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.ui.bean.HouseIdBean;
 import com.hdl.photovoltaic.ui.newC.adapter.HouseMoveAdapter;
+import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
+import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -27,6 +31,8 @@
  * C绔數绔欏垪琛ㄧЩ鍔ㄤ綅缃�
  */
 public class PowerStationsMoveActivity extends CustomBaseActivity {
+    private Handler handler;
+    private Runnable delayedRunnable;
     private ActivityPowerStationsMoveBinding viewBinding;//鏄惁鍦ㄧ紪杈戠姸鎬�
 
     private HouseMoveAdapter houseMoveAdapter;
@@ -56,6 +62,52 @@
         this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
     }
 
+    /**
+     * 涓嬫媺鍒锋柊鐨勯�昏緫
+     */
+    protected void pullToRefresh() {
+        viewBinding.fragmentHouseSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+                handler = new Handler(Looper.getMainLooper());
+
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.fragmentHouseSrl.endRefreshing();
+                        HdlResidenceLogic.getInstance().clearHouseList();
+                        downReadData(true);
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 1000);
+            }
+
+
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+
+                handler = new Handler(Looper.getMainLooper());
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.fragmentHouseSrl.endLoadingMore();
+
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 10);
+
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.fragmentHouseSrl.setRefreshViewHolder(hdlRefreshViewHolder);
+    }
+
     private void initEvent() {
         //杩斿洖鎸夐挳
         viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() {
@@ -65,17 +117,6 @@
             }
         });
 
-
-        //璁剧疆涓嬫媺绠ご棰滆壊
-        viewBinding.fragmentHouseSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        //鍒楄〃涓嬫媺鎸夐挳
-        viewBinding.fragmentHouseSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                HdlResidenceLogic.getInstance().clearHouseList();
-                downReadData(true);
-            }
-        });
         if (houseMoveAdapter != null) {
             //鐢电珯绉诲姩浣嶇疆鎸夐挳
             houseMoveAdapter.setMoveOnclickListener(new HouseMoveAdapter.OnMoveClickListener() {
@@ -125,6 +166,7 @@
         viewBinding.fragmentHouseSrlListRc.setAdapter(houseMoveAdapter);
         houseMoveAdapter.setList(this.houseListBeanIDList);
         this.nullDataUpdateUi(houseListBeanIDList);
+        pullToRefresh();
     }
 
     /**
@@ -133,6 +175,10 @@
      * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
      */
     private void downReadData(boolean isRefreshing) {
+        if (isRefreshing) {
+            //鍏抽棴涓嬫媺鍒锋柊鐨勫湀鍦�
+            showLoading();
+        }
         //鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃
         HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
             @Override
@@ -142,7 +188,7 @@
                     public void run() {
                         if (isRefreshing) {
                             //鍏抽棴涓嬫媺鍒锋柊鐨勫湀鍦�
-                            viewBinding.fragmentHouseSrl.setRefreshing(false);
+                            hideLoading();
                         }
                         if (list != null && list.size() > 0) {
                             //鏇存柊缂撳瓨
@@ -167,7 +213,7 @@
                     public void run() {
                         if (isRefreshing) {
                             //鍏抽棴涓嬫媺鍒锋柊鐨勫湀鍦�
-                            viewBinding.fragmentHouseSrl.setRefreshing(false);
+                            hideLoading();
                         }
                         HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
 
@@ -184,5 +230,13 @@
         HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.nullDataIc.getRoot(), viewBinding.nullDataIc.nullDataGifAnimationIv, viewBinding.nullDataIc.nullDataTv, getString(R.string.my_power_station_data_null), list != null && list.size() > 0);
     }
 
+    @Override
+    protected void onDestroy() {
+        if (handler != null && delayedRunnable != null) {
+            handler.removeCallbacks(delayedRunnable);
+        }
+        super.onDestroy();
+    }
+
 
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java
index 5c99ae0..49eff41 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java
@@ -6,7 +6,10 @@
 import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
 import android.content.Context;
+import android.os.AsyncTask;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
@@ -36,6 +39,8 @@
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils;
 import com.hdl.photovoltaic.utils.URLEncodingUtils;
+import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
+import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
 import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
 import com.hdl.sdk.link.core.config.HDLLinkConfig;
 import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
@@ -49,7 +54,8 @@
  */
 public class DeviceSearchActivity extends CustomBaseActivity {
 
-
+    private Handler handler;
+    private Runnable delayedRunnable;
     private ActivityDeviceSearchBinding viewBinding;
 
     SearchDeviceAdapter searchDeviceAdapter;//璁惧閫傞厤鍣�
@@ -57,9 +63,9 @@
 
     private List<CloudInverterDeviceBean> deviceList = new ArrayList<>();
 
-    private int currentHouseListPage = 0; // 褰撳墠鐢电珯鍒楄〃椤电爜
-    private int currentHouseListTotal = 0; // 鐢电珯鍒楄〃鎬婚〉鐮�
-    private boolean isHouseLoadingMore = false; // 鏍囪鐢电珯鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁
+    private int currentDeviceListPage = 0; // 褰撳墠鐢电珯鍒楄〃椤电爜
+    private int currentDeviceListTotal = 0; // 鐢电珯鍒楄〃鎬婚〉鐮�
+    private boolean isDeviceLoadingMore = false; // 鏍囪鐢电珯鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁
 
     private String currSearchText;
 
@@ -97,6 +103,54 @@
         }
     }
 
+    /**
+     * 涓嬫媺鍒锋柊鐨勯�昏緫
+     */
+    protected void pullToRefresh() {
+        viewBinding.listSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+                handler = new Handler(Looper.getMainLooper());
+
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.listSrl.endRefreshing();
+                        loadNextPageDeviceList(true, 1, true);
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 1000);
+            }
+
+
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+
+                handler = new Handler(Looper.getMainLooper());
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.listSrl.endLoadingMore();
+                        if (!isDeviceLoadingMore) {
+                            // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+                            HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+                            loadNextPageDeviceList(false, ++currentDeviceListPage, false);
+                        }
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 10);
+
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.listSrl.setRefreshViewHolder(hdlRefreshViewHolder);
+    }
 
     private void initEvent() {
 
@@ -125,41 +179,10 @@
                 viewBinding.historyListParent.setVisibility(View.GONE);
                 viewBinding.listParent.setVisibility(View.VISIBLE);
                 addSearchTextToList();
-                loadNextPageHouseList(true, 1, true);
+                loadNextPageDeviceList(true, 1, true);
             }
         });
 
-
-        //涓嬫媺绠ご棰滆壊
-        viewBinding.listSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        //涓嬫媺璇诲彇
-        viewBinding.listSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                viewBinding.listSrl.setRefreshing(false);
-                loadNextPageHouseList(true, 1, true);
-            }
-        });
-        //涓婃媺璇诲彇
-        viewBinding.listRcv.addOnScrollListener(new RecyclerView.OnScrollListener() {
-            @Override
-            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
-                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
-                if (layoutManager == null) {
-                    return;
-                }
-                int visibleItemCount = layoutManager.getChildCount();
-                int totalItemCount = layoutManager.getItemCount();
-                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
-                if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
-                    if (!isHouseLoadingMore) {
-                        // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
-                        HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
-                        loadNextPageHouseList(false, ++currentHouseListPage, false);
-                    }
-                }
-            }
-        });
         //娓呴櫎
         viewBinding.powerStationClearIv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -204,7 +227,7 @@
                 viewBinding.historyListParent.setVisibility(View.GONE);
                 viewBinding.listParent.setVisibility(View.VISIBLE);
                 addSearchTextToList();
-                loadNextPageHouseList(true, 1, true);
+                loadNextPageDeviceList(true, 1, true);
             }
         });
         //璁惧鐐瑰嚮鏄簨浠�
@@ -260,6 +283,7 @@
                 viewBinding.powerStationSearchEt.requestFocus();
             }
         });
+        pullToRefresh();
 
         //鍦ㄧ晫闈腑浣跨敤
         KeyboardStateObserverUtils.getKeyboardStateObserver(_mActivity).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() {
@@ -337,6 +361,9 @@
             HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath());
             HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(searchHistoryTitleList));
         }
+        if (handler != null && delayedRunnable != null) {
+            handler.removeCallbacks(delayedRunnable);
+        }
         super.onDestroy();
     }
 
@@ -345,7 +372,7 @@
      *
      * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
      */
-    private void loadNextPageHouseList(boolean isRefreshing, long pageNo, boolean isClear) {
+    private void loadNextPageDeviceList(boolean isRefreshing, long pageNo, boolean isClear) {
 
         //鎼滅储鍏抽敭瀛�
         if (TextUtils.isEmpty(currSearchText)) {
@@ -356,12 +383,12 @@
             clearData();
         }
         //绗竴椤佃鍙栨暟鎹己鍒惰鍙�
-        if (pageNo > 1 && currentHouseListPage > currentHouseListTotal) {
-            --currentHouseListPage;
+        if (pageNo > 1 && currentDeviceListPage > currentDeviceListTotal) {
+            --currentDeviceListPage;
             //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
             return;
         }
-        isHouseLoadingMore = true;//鏍囪璇诲彇鐘舵��
+        isDeviceLoadingMore = true;//鏍囪璇诲彇鐘舵��
         if (isRefreshing) {
             showLoading();
         }
@@ -376,10 +403,10 @@
                         if (isRefreshing) {
                             hideLoading();
                         }
-                        isHouseLoadingMore = false;
+                        isDeviceLoadingMore = false;
                         if (deviceClass != null) {
-                            currentHouseListTotal = (int) deviceClass.getTotalPage();
-                            currentHouseListPage = (int) deviceClass.getPageNo();
+                            currentDeviceListTotal = (int) deviceClass.getTotalPage();
+                            currentDeviceListPage = (int) deviceClass.getPageNo();
                             //鏇存柊缂撳瓨
                             setDeviceList(deviceClass.getList());
                             if (searchDeviceAdapter != null) {
@@ -398,10 +425,10 @@
                 HdlThreadLogic.runMainThread(new Runnable() {
                     @Override
                     public void run() {
-                        if (currentHouseListPage > 1) {
-                            --currentHouseListPage;
+                        if (currentDeviceListPage > 1) {
+                            --currentDeviceListPage;
                         }
-                        isHouseLoadingMore = false;
+                        isDeviceLoadingMore = false;
                         if (isRefreshing) {
                             hideLoading();
                         }
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java
index e5e58ce..a2ba13c 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java
@@ -2,7 +2,10 @@
 
 
 import android.content.Context;
+import android.os.AsyncTask;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
@@ -34,6 +37,8 @@
 import com.hdl.photovoltaic.ui.bean.HouseIdBean;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils;
+import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
+import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -43,7 +48,8 @@
  * 鐢电珯鎼滅储鐣岄潰
  */
 public class HouseSearchActivity extends CustomBaseActivity {
-
+    private Handler handler;
+    private Runnable delayedRunnable;
     private ActivityHouseSearchBinding viewBinding;
 
     SearchHistoryAdapter searchHistoryAdapter;
@@ -79,6 +85,8 @@
         initEvent();
     }
 
+
+
     private void initData() {
         try {
             String json = HdlFileLogic.getInstance().readFile(getHistoryFileNamePath());
@@ -90,6 +98,57 @@
         } catch (Exception ignored) {
         }
     }
+
+    /**
+     * 涓嬫媺鍒锋柊鐨勯�昏緫
+     */
+    protected void pullToRefresh() {
+        viewBinding.listSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+                handler = new Handler(Looper.getMainLooper());
+
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.listSrl.endRefreshing();
+                        loadNextPageHouseList(true, 1, true);
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 1000);
+            }
+
+
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+
+                handler = new Handler(Looper.getMainLooper());
+                delayedRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        viewBinding.listSrl.endLoadingMore();
+                        //鍔犺浇鏈�鏂版暟鎹畬鎴�
+                        if (!isHouseLoadingMore) {
+                            // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+                            loadNextPageHouseList(false, ++currentHouseListPage, false);
+                        }
+                    }
+                };
+                // 寤惰繜 5 绉掓墽琛�
+                handler.postDelayed(delayedRunnable, 10);
+
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.listSrl.setRefreshViewHolder(hdlRefreshViewHolder);
+    }
+
+
 
 
     private void initEvent() {
@@ -123,38 +182,6 @@
             }
         });
 
-
-        //涓嬫媺绠ご棰滆壊
-        viewBinding.listSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        //涓嬫媺璇诲彇
-        viewBinding.listSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                viewBinding.listSrl.setRefreshing(false);
-                loadNextPageHouseList(true, 1, true);
-            }
-        });
-        //涓婃媺璇诲彇
-        viewBinding.listRcv.addOnScrollListener(new RecyclerView.OnScrollListener() {
-            @Override
-            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
-                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
-                if (layoutManager == null) {
-                    return;
-                }
-                int visibleItemCount = layoutManager.getChildCount();
-                int totalItemCount = layoutManager.getItemCount();
-                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
-                if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
-                    if (!isHouseLoadingMore) {
-                        // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
-                        HdlLogLogic.print("---婊戝姩鍒颁簡搴曢儴");
-                        loadNextPageHouseList(false, ++currentHouseListPage, false);
-                    }
-                }
-
-            }
-        });
         //娓呴櫎
         viewBinding.powerStationClearIv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -254,6 +281,8 @@
             }
         });
 
+        pullToRefresh();
+
         //鍦ㄧ晫闈腑浣跨敤
         KeyboardStateObserverUtils.getKeyboardStateObserver(_mActivity).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() {
             @Override
@@ -270,6 +299,8 @@
             }
 
         });
+
+
     }
 
 
@@ -314,6 +345,9 @@
             HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath());
             HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(searchHistoryTitleList));
         }
+        if (handler != null && delayedRunnable != null) {
+            handler.removeCallbacks(delayedRunnable);
+        }
         super.onDestroy();
     }
 
diff --git a/app/src/main/res/layout/activity_device_search.xml b/app/src/main/res/layout/activity_device_search.xml
index 02d6ff8..d7aa12e 100644
--- a/app/src/main/res/layout/activity_device_search.xml
+++ b/app/src/main/res/layout/activity_device_search.xml
@@ -147,7 +147,7 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/power_station_search_cl">
 
-        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+        <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
             android:id="@+id/list_srl"
             android:layout_width="match_parent"
             android:layout_height="0dp"
@@ -160,7 +160,7 @@
                 android:id="@+id/list_rcv"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent" />
-        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+        </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
diff --git a/app/src/main/res/layout/activity_house_search.xml b/app/src/main/res/layout/activity_house_search.xml
index f4ceb7e..0821772 100644
--- a/app/src/main/res/layout/activity_house_search.xml
+++ b/app/src/main/res/layout/activity_house_search.xml
@@ -146,7 +146,7 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/power_station_search_cl">
 
-        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+        <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
             android:id="@+id/list_srl"
             android:layout_width="match_parent"
             android:layout_height="0dp"
@@ -159,7 +159,7 @@
                 android:id="@+id/list_rcv"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent" />
-        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+        </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
     <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
diff --git a/app/src/main/res/layout/activity_message_center_list.xml b/app/src/main/res/layout/activity_message_center_list.xml
index 444d865..93a1cb5 100644
--- a/app/src/main/res/layout/activity_message_center_list.xml
+++ b/app/src/main/res/layout/activity_message_center_list.xml
@@ -21,7 +21,8 @@
     <RelativeLayout
         android:id="@+id/message_rl"
         android:layout_width="0dp"
-        android:layout_height="@dimen/dp_60"
+        android:layout_height="@dimen/dp_22"
+        android:layout_marginTop="@dimen/dp_20"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/toolbar_top_message_center_list_rl">
@@ -129,10 +130,11 @@
     </RelativeLayout>
 
 
-    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+    <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
         android:id="@+id/message_content_srl"
         android:layout_width="match_parent"
         android:layout_height="0dp"
+        android:layout_marginTop="@dimen/dp_10"
         app:layout_constraintBottom_toTopOf="@+id/message_bottom_cl"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
@@ -141,8 +143,10 @@
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/message_content_rl"
             android:layout_width="match_parent"
-            android:layout_height="match_parent" />
-    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+            android:layout_height="match_parent"
+            android:clipToPadding="false"
+            android:paddingBottom="@dimen/dp_10" />
+    </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
     <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
     <include
diff --git a/app/src/main/res/layout/activity_power_stations_list.xml b/app/src/main/res/layout/activity_power_stations_list.xml
index 37d6bed..f6f6304 100644
--- a/app/src/main/res/layout/activity_power_stations_list.xml
+++ b/app/src/main/res/layout/activity_power_stations_list.xml
@@ -18,11 +18,11 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
-    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+    <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
         android:id="@+id/fragment_house_srl"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_marginTop="@dimen/dp_12"
+        android:layout_marginTop="@dimen/dp_10"
         app:layout_constraintBottom_toTopOf="@+id/add_power_station_rl"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
@@ -34,7 +34,7 @@
             android:layout_height="match_parent"
             android:clipToPadding="false"
             android:paddingBottom="@dimen/dp_16" />
-    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+    </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
     <RelativeLayout
         android:id="@+id/add_power_station_rl"
diff --git a/app/src/main/res/layout/activity_power_stations_move.xml b/app/src/main/res/layout/activity_power_stations_move.xml
index 5d9dd50..87333c1 100644
--- a/app/src/main/res/layout/activity_power_stations_move.xml
+++ b/app/src/main/res/layout/activity_power_stations_move.xml
@@ -17,7 +17,7 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
-    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+    <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
         android:id="@+id/fragment_house_srl"
         android:layout_width="match_parent"
         android:layout_height="0dp"
@@ -32,8 +32,8 @@
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:clipToPadding="false"
-            android:paddingBottom="@dimen/dp_16" />
-    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+            android:paddingBottom="@dimen/dp_10" />
+    </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
 
     <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
diff --git a/app/src/main/res/layout/activity_search_messge.xml b/app/src/main/res/layout/activity_search_messge.xml
index a9de490..35c5e50 100644
--- a/app/src/main/res/layout/activity_search_messge.xml
+++ b/app/src/main/res/layout/activity_search_messge.xml
@@ -146,7 +146,7 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/message_search_cl">
 
-        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+        <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
             android:id="@+id/list_srl"
             android:layout_width="match_parent"
             android:layout_height="0dp"
@@ -159,7 +159,7 @@
                 android:id="@+id/list_rcv"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent" />
-        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+        </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
diff --git a/app/src/main/res/layout/fragment_message.xml b/app/src/main/res/layout/fragment_message.xml
index 647f41b..e181a31 100644
--- a/app/src/main/res/layout/fragment_message.xml
+++ b/app/src/main/res/layout/fragment_message.xml
@@ -223,7 +223,10 @@
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/message_rcv"
             android:layout_width="match_parent"
-            android:layout_height="match_parent" />
+            android:layout_height="match_parent"
+            android:clipToPadding="false"
+            android:paddingBottom="@dimen/dp_10"
+            />
     </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
     <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
diff --git a/app/src/main/res/layout/item_message_c.xml b/app/src/main/res/layout/item_message_c.xml
index ccbe1ed..5c137e5 100644
--- a/app/src/main/res/layout/item_message_c.xml
+++ b/app/src/main/res/layout/item_message_c.xml
@@ -8,6 +8,7 @@
         android:layout_width="0dp"
         android:layout_height="107.5dp"
         android:layout_marginStart="@dimen/dp_16"
+        android:layout_marginTop="@dimen/dp_10"
         android:layout_marginEnd="@dimen/dp_16"
         android:background="@drawable/bj_ff1c1c1e"
         app:layout_constraintEnd_toEndOf="parent"

--
Gitblit v1.8.0