From 6834b4502af1d4873737f989041be1360e201108 Mon Sep 17 00:00:00 2001
From: Administrator <123>
Date: Fri, 29 Oct 2021 09:46:38 +0000
Subject: [PATCH] 部分修改
---
app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissionAdapter.java | 16 ++++
app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java | 17 +++-
app/src/main/java/com/duqing/missions/ui/main/dashboard/DashboardFragment.java | 25 +-----
app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissionTopAdapter.java | 2
app/src/main/java/com/duqing/missions/ui/main/dashboard/DashboardViewModel.java | 19 ++++
app/src/main/java/com/duqing/missions/ui/main/home/HomeViewModel.java | 24 ++++-
app/src/main/res/layout/fragment_home.xml | 93 ++++++++++++-----------
7 files changed, 120 insertions(+), 76 deletions(-)
diff --git a/app/src/main/java/com/duqing/missions/ui/main/dashboard/DashboardFragment.java b/app/src/main/java/com/duqing/missions/ui/main/dashboard/DashboardFragment.java
index a0d8ef3..d0da00b 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/dashboard/DashboardFragment.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/dashboard/DashboardFragment.java
@@ -1,40 +1,25 @@
package com.duqing.missions.ui.main.dashboard;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
+import com.duqing.missions.MainActivity;
+import com.duqing.missions.base.BaseFragment;
import com.duqing.missions.databinding.FragmentDashboardBinding;
-public class DashboardFragment extends Fragment {
+public class DashboardFragment extends BaseFragment<MainActivity,FragmentDashboardBinding> {
private DashboardViewModel dashboardViewModel;
private FragmentDashboardBinding binding;
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ @Override
+ public void initViews() {
dashboardViewModel = new ViewModelProvider(this).get(DashboardViewModel.class);
-
- binding = FragmentDashboardBinding.inflate(inflater, container, false);
- View root = binding.getRoot();
-
dashboardViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
}
});
- return root;
- }
-
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- binding = null;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/duqing/missions/ui/main/dashboard/DashboardViewModel.java b/app/src/main/java/com/duqing/missions/ui/main/dashboard/DashboardViewModel.java
new file mode 100644
index 0000000..a0f3ffe
--- /dev/null
+++ b/app/src/main/java/com/duqing/missions/ui/main/dashboard/DashboardViewModel.java
@@ -0,0 +1,19 @@
+package com.duqing.missions.ui.main.dashboard;
+
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.ViewModel;
+
+public class DashboardViewModel extends ViewModel {
+
+ private MutableLiveData<String> mText;
+
+ public DashboardViewModel() {
+ mText = new MutableLiveData<>();
+ mText.setValue("This is dashboard fragment");
+ }
+
+ public LiveData<String> getText() {
+ return mText;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java b/app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java
index 665138e..d1fc918 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java
@@ -19,7 +19,8 @@
import com.duqing.missions.MainActivity;
import com.duqing.missions.base.BaseFragment;
import com.duqing.missions.databinding.FragmentHomeBinding;
-import com.duqing.missions.ui.main.home.adapter.MissiontTopAdapter;
+import com.duqing.missions.ui.main.home.adapter.MissionAdapter;
+import com.duqing.missions.ui.main.home.adapter.MissionTopAdapter;
import com.duqing.missions.ui.main.home.model.MissionDesc;
import com.scwang.smart.refresh.footer.ClassicsFooter;
import com.scwang.smart.refresh.header.ClassicsHeader;
@@ -62,22 +63,30 @@
homeViewModel.onRefresh();
}
});
- final MissiontTopAdapter topAdapter = new MissiontTopAdapter();
+ final MissionTopAdapter topAdapter = new MissionTopAdapter();
recyclerTop.setAdapter(topAdapter);
+ final MissionAdapter recommendAdapter = new MissionAdapter();
+ recyclerRecommend.setAdapter(recommendAdapter);
homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
- homeViewModel.getMissions().observe(getViewLifecycleOwner(), new Observer<List<MissionDesc>>() {
+ homeViewModel.getTopMissions().observe(getViewLifecycleOwner(), new Observer<List<MissionDesc>>() {
@Override
public void onChanged(List<MissionDesc> missionDescs) {
smartRefresh.finishRefresh();
- smartRefresh.finishLoadMore();
topAdapter.setData(missionDescs);
}
});
+ homeViewModel.getRecommendMissions().observeForever(new Observer<List<MissionDesc>>() {
+ @Override
+ public void onChanged(List<MissionDesc> missionDescs) {
+ smartRefresh.finishLoadMore();
+ recommendAdapter.setData(missionDescs);
+ }
+ });
}
@Nullable
diff --git a/app/src/main/java/com/duqing/missions/ui/main/home/HomeViewModel.java b/app/src/main/java/com/duqing/missions/ui/main/home/HomeViewModel.java
index e76862b..be17225 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/home/HomeViewModel.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/home/HomeViewModel.java
@@ -12,7 +12,8 @@
public class HomeViewModel extends ViewModel {
private MutableLiveData<String> mText;
- private MutableLiveData<List<MissionDesc>> missions = new MutableLiveData<>();
+ private MutableLiveData<List<MissionDesc>> topMissions = new MutableLiveData<>();
+ private MutableLiveData<List<MissionDesc>> recommendMissions = new MutableLiveData<>();
public HomeViewModel() {
mText = new MutableLiveData<>();
@@ -23,25 +24,34 @@
return mText;
}
- public MutableLiveData<List<MissionDesc>> getMissions() {
- return missions;
+ public MutableLiveData<List<MissionDesc>> getTopMissions() {
+ return topMissions;
+ }
+
+ public MutableLiveData<List<MissionDesc>> getRecommendMissions() {
+ return recommendMissions;
}
public void onRefresh(){
- List<MissionDesc> list = new ArrayList<>();
+ List<MissionDesc> list = topMissions.getValue() == null? new ArrayList<>() :topMissions.getValue();
+ list.clear();
list.add(new MissionDesc());
list.add(new MissionDesc());
list.add(new MissionDesc());
list.add(new MissionDesc());
- missions.setValue(list);
+ topMissions.setValue(list);
+ List<MissionDesc> list2 = recommendMissions.getValue() == null? new ArrayList<>() :recommendMissions.getValue();
+ list2.clear();
+ list2.addAll(list);
+ recommendMissions.setValue(list2);
}
public void onLoadMore(){
- List<MissionDesc> list = missions.getValue();
+ List<MissionDesc> list = recommendMissions.getValue();
list.add(new MissionDesc());
list.add(new MissionDesc());
list.add(new MissionDesc());
list.add(new MissionDesc());
- missions.postValue(list);
+ recommendMissions.setValue(list);
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissionAdapter.java b/app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissionAdapter.java
new file mode 100644
index 0000000..1349dac
--- /dev/null
+++ b/app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissionAdapter.java
@@ -0,0 +1,16 @@
+package com.duqing.missions.ui.main.home.adapter;
+
+import com.duqing.missions.MainActivity;
+import com.duqing.missions.base.BaseAdapter;
+import com.duqing.missions.databinding.HomtItemRecommendBinding;
+import com.duqing.missions.ui.main.home.model.MissionDesc;
+
+/**
+ * Created by Administrator on 2021/10/29 0029.
+ */
+public class MissionAdapter extends BaseAdapter<HomtItemRecommendBinding, MainActivity, MissionDesc> {
+ @Override
+ protected void bindView(ViewBindHolder holder, MissionDesc data, int position) {
+
+ }
+}
diff --git a/app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissiontTopAdapter.java b/app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissionTopAdapter.java
similarity index 80%
rename from app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissiontTopAdapter.java
rename to app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissionTopAdapter.java
index de21915..2a0090d 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissiontTopAdapter.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/home/adapter/MissionTopAdapter.java
@@ -8,7 +8,7 @@
/**
* Created by Administrator on 2021/10/28 0028.
*/
-public class MissiontTopAdapter extends BaseAdapter<HomeItemTopBinding, MainActivity, MissionDesc> {
+public class MissionTopAdapter extends BaseAdapter<HomeItemTopBinding, MainActivity, MissionDesc> {
@Override
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index 6ed5bfb..0eb77bd 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -25,57 +25,62 @@
app:layout_constraintBottom_toBottomOf="parent"
>
- <androidx.constraintlayout.widget.ConstraintLayout
+ <androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
- android:layout_height="match_parent" >
+ android:layout_height="match_parent">
-
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/recycler_top"
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:overScrollMode="never"
- app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
- app:spanCount="3"
- tools:itemCount="3"
- tools:listitem="@layout/home_item_top" />
+ android:layout_height="wrap_content" >
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/recycler_classify"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
- android:overScrollMode="never"
- tools:listitem="@layout/home_item_classify"
- app:layout_constraintTop_toBottomOf="@id/recycler_top"
- app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
- app:spanCount="5"
- tools:itemCount="3"
- tools:layout_editor_absoluteX="1dp"
- tools:layout_editor_absoluteY="247dp"/>
- <TextView
- android:id="@+id/text_recommend"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- app:layout_constraintTop_toBottomOf="@id/recycler_classify"
- app:layout_constraintLeft_toLeftOf="parent"
- android:textSize="14dp"
- android:text="任务推荐"
- android:textColor="@color/black"
- android:layout_margin="@dimen/frame_margin_lr" />
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recycler_top"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:overScrollMode="never"
+ app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
+ app:spanCount="3"
+ tools:itemCount="3"
+ tools:listitem="@layout/home_item_top" />
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/recycler_recommend"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:overScrollMode="never"
- tools:listitem="@layout/homt_item_recommend"
- app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintTop_toBottomOf="@id/text_recommend"
- />
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recycler_classify"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:overScrollMode="never"
+ tools:listitem="@layout/home_item_classify"
+ app:layout_constraintTop_toBottomOf="@id/recycler_top"
+ app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
+ app:spanCount="5"
+ tools:itemCount="3"
+ tools:layout_editor_absoluteX="1dp"
+ tools:layout_editor_absoluteY="247dp"/>
- </androidx.constraintlayout.widget.ConstraintLayout>
+ <TextView
+ android:id="@+id/text_recommend"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:layout_constraintTop_toBottomOf="@id/recycler_classify"
+ app:layout_constraintLeft_toLeftOf="parent"
+ android:textSize="14dp"
+ android:text="任务推荐"
+ android:textColor="@color/black"
+ android:layout_margin="@dimen/frame_margin_lr" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recycler_recommend"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:overScrollMode="never"
+ tools:listitem="@layout/homt_item_recommend"
+ app:layout_constraintLeft_toLeftOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/text_recommend"
+ />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </androidx.core.widget.NestedScrollView>
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
--
Gitblit v1.9.1