From f7d36b0f2c254a048905ae27c9e421427eb0f2c8 Mon Sep 17 00:00:00 2001 From: Administrator <123> Date: Thu, 04 Nov 2021 02:04:19 +0000 Subject: [PATCH] tablayout 框架 分页加载框架 --- app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java | 45 +++++++-------------------------------------- 1 files changed, 7 insertions(+), 38 deletions(-) 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 346c357..2b6198a 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 @@ -8,83 +8,52 @@ import android.view.ViewGroup; import android.widget.TextView; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.duqing.missions.base.BaseFragment; +import com.duqing.missions.base.fragments.BaseLoadPageFragment; +import com.duqing.missions.data.BasePageResult; import com.duqing.missions.databinding.FragmentHomeBinding; import com.duqing.missions.ui.login.view.LoginActivity; 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; -import com.scwang.smart.refresh.layout.SmartRefreshLayout; -import com.scwang.smart.refresh.layout.api.RefreshLayout; -import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener; import java.util.List; -public class HomeFragment extends BaseFragment<FragmentHomeBinding> { +public class HomeFragment extends BaseLoadPageFragment<FragmentHomeBinding,HomeViewModel,MissionAdapter, BasePageResult<String>> { - private HomeViewModel homeViewModel; final String TAG = "HomeFragment"; @Override public void initViews() { - homeViewModel = new ViewModelProvider(this).get(HomeViewModel.class); + super.initViews(); binding.textSearch.setOnClickListener(v -> startActivity(new Intent(getContext(), LoginActivity.class))); - final SmartRefreshLayout smartRefresh = binding.smartRefresh; - smartRefresh.setRefreshHeader(new ClassicsHeader(getContext())); - smartRefresh.setRefreshFooter(new ClassicsFooter(getContext())); final TextView textView = binding.textRecommend; RecyclerView recyclerClassify = binding.recyclerClassify; RecyclerView recyclerTop = binding.recyclerTop; - final RecyclerView recyclerRecommend = binding.recyclerRecommend; - recyclerRecommend.setLayoutManager(new LinearLayoutManager(getContext())); LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); recyclerClassify.setLayoutManager(layoutManager); recyclerTop.setLayoutManager(new GridLayoutManager(getContext(),3)); - smartRefresh.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() { - @Override - public void onLoadMore(@NonNull RefreshLayout refreshLayout) { - homeViewModel.onLoadMore(); - } - - @Override - public void onRefresh(@NonNull RefreshLayout refreshLayout) { - homeViewModel.onRefresh(); - } - }); 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.getTopMissions().observe(getViewLifecycleOwner(), new Observer<List<MissionDesc>>() { + viewModel.getTopMissions().observe(getViewLifecycleOwner(), new Observer<List<MissionDesc>>() { @Override public void onChanged(List<MissionDesc> missionDescs) { smartRefresh.finishRefresh(); topAdapter.setData(missionDescs); } }); - homeViewModel.getRecommendMissions().observeForever(new Observer<List<MissionDesc>>() { + viewModel.getRecommendMissions().observeForever(new Observer<List<MissionDesc>>() { @Override public void onChanged(List<MissionDesc> missionDescs) { smartRefresh.finishLoadMore(); - recommendAdapter.setData(missionDescs); + adapter.setData(missionDescs); } }); } -- Gitblit v1.9.1