From 462d583986e4739f7a75227b3fde4da587502ba5 Mon Sep 17 00:00:00 2001
From: Administrator <123>
Date: Fri, 05 Nov 2021 03:20:39 +0000
Subject: [PATCH] 主页 动态UI adapter  null视图问题修改 分页框架 include问题

---
 app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java b/app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java
index bcd52ad..81f9dd4 100644
--- a/app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java
+++ b/app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java
@@ -10,6 +10,7 @@
 import com.duqing.missions.base.adapter.BaseAdapter;
 import com.duqing.missions.base.model.BaseLoadPageViewModel;
 import com.duqing.missions.data.BasePageResult;
+import com.duqing.missions.databinding.RefreshRecyclerBinding;
 import com.scwang.smart.refresh.footer.ClassicsFooter;
 import com.scwang.smart.refresh.header.ClassicsHeader;
 import com.scwang.smart.refresh.layout.SmartRefreshLayout;
@@ -37,19 +38,30 @@
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        Class<A> entityClass = (Class<A>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[2];
         try {
+            Class<A> entityClass = (Class<A>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[2];
             this.adapter = entityClass.newInstance();//实例化泛型
-            smartRefresh = (SmartRefreshLayout) binding.getClass().getDeclaredField("smartRefresh").get(binding);
-            smartRefresh.setRefreshHeader(new ClassicsHeader(mContext));
-            smartRefresh.setRefreshFooter(new ClassicsFooter(mContext));
-            smartRefresh.setOnRefreshLoadMoreListener(this);
+            String smartStr = "smartRefresh";
+            smartRefresh = (SmartRefreshLayout) binding.getClass().getField(smartStr).get(binding);
             recycler =  (RecyclerView) binding.getClass().getDeclaredField("recycler").get(binding);
-            recycler.setLayoutManager(new LinearLayoutManager(mContext));
-            recycler.setAdapter(adapter);
-        } catch (Exception e) {
+        } catch (NoSuchFieldException e) {
+            try {
+                RefreshRecyclerBinding includeRefreshRecycler = (RefreshRecyclerBinding) binding.getClass().getDeclaredField ("includeRefreshRecycler").get(binding);
+                smartRefresh = includeRefreshRecycler.smartRefresh;
+                recycler =  includeRefreshRecycler.recycler;
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+        } catch (java.lang.InstantiationException e) {
             e.printStackTrace();
         }
+        smartRefresh.setRefreshHeader(new ClassicsHeader(mContext));
+        smartRefresh.setRefreshFooter(new ClassicsFooter(mContext));
+        smartRefresh.setOnRefreshLoadMoreListener(this);
+        recycler.setLayoutManager(new LinearLayoutManager(mContext));
+        recycler.setAdapter(adapter);
     }
 
     private void finishFreshLoadmore(D result){

--
Gitblit v1.9.1