From 31b7700b976a46901f67c5d7a00281ca4745fc9f Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期六, 07 十月 2023 21:44:35 +0800
Subject: [PATCH] 调整旅游模块功能

---
 app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java |   79 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 69 insertions(+), 10 deletions(-)

diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java
index cc69d3d..d702b95 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java
@@ -1,5 +1,7 @@
 package com.application.zhangshi_app_android.ui.function;
 
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
 import android.animation.ValueAnimator;
 import android.view.View;
 import android.view.ViewGroup;
@@ -9,9 +11,11 @@
 import android.widget.LinearLayout;
 
 import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
 
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.OldSpouseRvAdapter;
 import com.application.zhangshi_app_android.databinding.ActivityMarriageBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
 
@@ -22,6 +26,7 @@
  */
 public class MarriageActivity extends DLBaseActivity<ActivityMarriageBinding,MarriageActivityViewModel> {
 
+    private OldSpouseRvAdapter adapter;
     @Override
     public int getLayoutId() {
         return R.layout.activity_marriage;
@@ -36,27 +41,49 @@
     public void initParam() {
 
     }
-
-    private boolean isExpended = false;
     @Override
     public void initView() {
+        adapter = new OldSpouseRvAdapter(this);
+        binding.rvPredecessor.setNestedScrollingEnabled(false);
+        binding.rvPredecessor.setAdapter(adapter);
+
+        final int SCROLL_THRESHOLD = 400; // 婊戝姩闃堝�硷紝鎸夐挳鍦ㄦ粦鍔ㄨ秴杩囪闃堝�煎悗寮�濮嬫牴鎹秴鍑洪槇鍊艰窛绂绘笎娓愭樉绀哄嚭鏉�
+        final int SCROLL_DISTANCE = 400; // 鎸夐挳浠庨殣钘忓埌鍏ㄩ儴鏄剧ず鍑烘潵闇�瑕佹粦鍔ㄧ殑璺濈
+        binding.fabMoveToTop.setAlpha(0f);
+        binding.nestedScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
+            @Override
+            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+                // 褰撴粦鍔ㄨ窛绂昏秴杩囬槇鍊间竴鍗婃椂锛屽紑濮嬫參鎱㈡樉绀烘寜閽�
+                if (scrollY >= SCROLL_THRESHOLD) {
+                    // 鏍规嵁婊戝姩璺濈璁剧疆鎸夐挳閫忔槑搴�
+                    float alpha = Math.min(1.0f, (float) (scrollY - SCROLL_THRESHOLD) / SCROLL_DISTANCE);
+                    binding.fabMoveToTop.setAlpha(alpha);
+                } else {
+                    binding.fabMoveToTop.setAlpha(0f);
+                }
+            }
+        });
+        binding.fabMoveToTop.setOnClickListener(v -> {
+            // 鐐瑰嚮鎸夐挳杩斿洖椤堕儴
+            binding.nestedScrollView.smoothScrollTo(0, 0);
+        });
     }
 
     @Override
     public void initData() {
-
+        viewModel.getMarriageInfo();
     }
 
     @Override
     public void initLiveDataObserve() {
         viewModel.getIsSpouseExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivSpouseFold.setOnClickListener(view -> {
+                binding.layoutTitleSpouse.setOnClickListener(view -> {
                     collapseView(binding.cardSpouse,binding.layoutTitleSpouse);
                     viewModel.getIsSpouseExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivSpouseFold.setOnClickListener(view -> {
+                binding.layoutTitleSpouse.setOnClickListener(view -> {
                     expendView(binding.cardSpouse);
                     viewModel.getIsSpouseExpendedLiveData().setValue(true);
                 });
@@ -64,12 +91,12 @@
         });
         viewModel.getIsPredecessorExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivPredecessorFold.setOnClickListener(view -> {
+                binding.layoutTitlePredecessor.setOnClickListener(view -> {
                     collapseView(binding.cardPredecessor,binding.layoutTitlePredecessor);
                     viewModel.getIsPredecessorExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivPredecessorFold.setOnClickListener(new View.OnClickListener() {
+                binding.layoutTitlePredecessor.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         expendView(binding.cardPredecessor);
@@ -80,7 +107,7 @@
         });
         viewModel.getIsProcreateExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivProcreateFold.setOnClickListener(new View.OnClickListener() {
+                binding.layoutTitleProcreate.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         collapseView(binding.cardProcreate,binding.layoutTitleProcreate);
@@ -88,7 +115,7 @@
                     }
                 });
             }else {
-                binding.ivProcreateFold.setOnClickListener(new View.OnClickListener() {
+                binding.layoutTitleProcreate.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         expendView(binding.cardProcreate);
@@ -97,6 +124,30 @@
                 });
             }
         });
+        viewModel.getInfoLiveData().observe(this, marriageInfoBean -> {
+            if (marriageInfoBean != null){
+                if (marriageInfoBean.getOldSpouseList() == null || marriageInfoBean.getOldSpouseList().size() == 0) {
+                    binding.cardSpouse.setVisibility(View.GONE);
+                }else {
+                    binding.cardSpouse.setVisibility(View.VISIBLE);
+                    adapter.setData(marriageInfoBean.getOldSpouseList());
+                }
+            }
+        });
+    }
+
+    @Override
+    protected void dataNull() {
+        super.dataNull();
+        binding.layoutDataNull.setVisibility(View.VISIBLE);
+        binding.nestedScrollView.setVisibility(View.GONE);
+    }
+
+    @Override
+    protected void hide() {
+        super.hide();
+        binding.layoutDataNull.setVisibility(View.GONE);
+        binding.nestedScrollView.setVisibility(View.VISIBLE);
     }
 
     public void collapseView(View initialView,View collapsedView){
@@ -123,14 +174,22 @@
     }
     public void expendView(View initialView){
         int initialHeight = initialView.getMeasuredHeight();
-        initialView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
+        initialView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
         int targetHeight = initialView.getMeasuredHeight();
         ValueAnimator animator = ValueAnimator.ofInt(initialHeight,targetHeight);
         animator.addUpdateListener(animation -> {
             initialView.getLayoutParams().height = (int) animation.getAnimatedValue();
             initialView.requestLayout();
         });
+        animator.addListener(new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                initialView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
+                initialView.setLayoutParams(initialView.getLayoutParams());
+            }
+        });
         animator.setDuration(500);
         animator.start();
     }
+
 }

--
Gitblit v1.9.1