From b17b9aa59bae6d03055f14d937821655dfaffa1f Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期一, 29 一月 2024 23:27:08 +0800
Subject: [PATCH] 1、调整成长经历页面\n2、删除婚姻个人信息

---
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java |  195 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 164 insertions(+), 31 deletions(-)

diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java
index dd46dac..0e5df68 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java
@@ -3,6 +3,8 @@
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.animation.ValueAnimator;
+import android.text.Editable;
+import android.text.TextWatcher;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.animation.Animation;
@@ -10,12 +12,25 @@
 import android.widget.FrameLayout;
 import android.widget.PopupWindow;
 
+import androidx.lifecycle.Observer;
+
 import com.android.app_base.manager.AppManager;
 import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean;
+import com.application.zhangshi_app_android.bean.HealthCareNotesContentBean;
 import com.application.zhangshi_app_android.databinding.ActivityHealthCareBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.OptionPicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener;
+import com.google.android.material.tabs.TabLayout;
+import com.hjq.bar.TitleBar;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author Ljj
@@ -25,7 +40,6 @@
 public class HealthCareActivity extends DLBaseActivity<ActivityHealthCareBinding,HealthCareActivityViewModel> {
 
     private PopupWindow popupWindow;
-    private int popWidth;
     @Override
     public int getLayoutId() {
         return R.layout.activity_health_care;
@@ -45,37 +59,72 @@
     public void initView() {
         View view = View.inflate(this,R.layout.pop_annual_health_status,null);
         popupWindow = initPopUpWindow(view);
-
-        view.findViewById(R.id.tv_annual_health_status).setOnClickListener(new View.OnClickListener() {
+        view.findViewById(R.id.tv_edit).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 popupWindow.dismiss();
-                AppManager.getAppManager().startActivity(AnnualHealthStatusActivity.class);
+                viewModel.setTypeLiveData(true);
             }
         });
 
-        binding.ivOperate.setOnClickListener(v -> {
-            popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,118) +binding.ivOperate.getWidth(),0);
+        binding.tvSex.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                List<String> list = Arrays.asList("濂�","鐢�");
+                OptionPicker picker = getOptionPicker(list);
+                picker.setTitle("鎬у埆");
+                picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+                    @Override
+                    public void onOptionPicked(int position, Object item) {
+                        binding.tvSex.setText(item.toString());
+                    }
+                });
+                picker.show();
+            }
         });
 
+        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.getHealthCareBaseInfo();
+        viewModel.getHealthCareLifeHabits();
+        viewModel.getHealthCareNursingExamination();
+        viewModel.getHealthCareExistingProblems();
+        viewModel.getHealthCareNotesContent();
     }
 
     @Override
     public void initLiveDataObserve() {
         viewModel.getIsLifeHabitsExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivLifeHabitsFold.setOnClickListener(view -> {
+                binding.layoutTitleLifeHabits.setOnClickListener(view -> {
                     collapseView(binding.cardLifeHabits,binding.layoutTitleLifeHabits);
                     viewModel.getIsLifeHabitsExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivLifeHabitsFold.setOnClickListener(view -> {
+                binding.layoutTitleLifeHabits.setOnClickListener(view -> {
                     expendView(binding.cardLifeHabits);
                     viewModel.getIsLifeHabitsExpendedLiveData().setValue(true);
                 });
@@ -83,12 +132,12 @@
         });
         viewModel.getIsHealthExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivHealthFold.setOnClickListener(view -> {
+                binding.layoutTitleHealth.setOnClickListener(view -> {
                     collapseView(binding.cardHealth,binding.layoutTitleHealth);
                     viewModel.getIsHealthExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivHealthFold.setOnClickListener(view -> {
+                binding.layoutTitleHealth.setOnClickListener(view -> {
                     expendView(binding.cardHealth);
                     viewModel.getIsHealthExpendedLiveData().setValue(true);
                 });
@@ -96,15 +145,111 @@
         });
         viewModel.getIsNursingExpendedLiveData().observe(this, aBoolean -> {
             if (aBoolean){
-                binding.ivNursingFold.setOnClickListener(view -> {
+                binding.layoutTitleNursing.setOnClickListener(view -> {
                     collapseView(binding.cardNursing,binding.layoutTitleNursing);
                     viewModel.getIsNursingExpendedLiveData().setValue(false);
                 });
             }else {
-                binding.ivNursingFold.setOnClickListener(view -> {
+                binding.layoutTitleNursing.setOnClickListener(view -> {
                     expendView(binding.cardNursing);
                     viewModel.getIsNursingExpendedLiveData().setValue(true);
                 });
+            }
+        });
+        viewModel.getTypeLiveData().observe(this, new Observer<Boolean>() {
+            @Override
+            public void onChanged(Boolean aBoolean) {
+                if (aBoolean){
+                    binding.ivOperate.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            viewModel.setTypeLiveData(false);
+                            viewModel.save();
+                        }
+                    });
+                }else {
+                    binding.ivOperate.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(HealthCareActivity.this,85) +binding.ivOperate.getWidth(),0);
+                        }
+                    });
+                }
+            }
+        });
+        viewModel.getHealthCareNotesContentBeanLiveData().observe(this, new Observer<HealthCareNotesContentBean>() {
+            @Override
+            public void onChanged(HealthCareNotesContentBean bean) {
+                List<String> tabList = bean.getTabList();
+                List<String> contentList = bean.getContentList();
+                if (tabList==null||tabList.size() == 0 ){
+                    binding.etFill.setVisibility(View.GONE);
+                    return;
+                }else {
+                    binding.etFill.setVisibility(View.VISIBLE);
+                }
+                binding.tabLayout.removeAllTabs();
+                for (int i = 0; i < tabList.size(); i++) {
+                    String tabText = tabList.get(i);
+                    TabLayout.Tab tab = binding.tabLayout.newTab().setText(tabText);
+                    if (i % 2 == 0){
+                        tab.view.setBackgroundResource(R.drawable.selector_tab_background_pink);
+                    }else {
+                        tab.view.setBackgroundResource(R.drawable.selector_tab_background_blue);
+                    }
+                    //鍙栨秷tab鐨勯暱鎸夋樉绀烘枃鏈�
+                    tab.view.setOnLongClickListener(new View.OnLongClickListener() {
+                        @Override
+                        public boolean onLongClick(View v) {
+                            return true;
+                        }
+                    });
+                    binding.tabLayout.addTab(tab);
+                }
+                binding.etFill.setText(contentList.get(0));
+                binding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+                    @Override
+                    public void onTabSelected(TabLayout.Tab tab) {
+                        binding.etFill.setText(contentList.get(tab.getPosition()));
+                        binding.etFill.clearFocus();
+                    }
+
+                    @Override
+                    public void onTabUnselected(TabLayout.Tab tab) {
+
+                    }
+
+                    @Override
+                    public void onTabReselected(TabLayout.Tab tab) {
+
+                    }
+                });
+                binding.etFill.addTextChangedListener(new TextWatcher() {
+                    @Override
+                    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+                    }
+
+                    @Override
+                    public void onTextChanged(CharSequence s, int start, int before, int count) {
+                        int select = binding.tabLayout.getSelectedTabPosition();
+                        contentList.set(select,s.toString());
+                        viewModel.getHealthCareNotesContentBeanLiveData().getValue().setContent(contentList);
+                    }
+
+                    @Override
+                    public void afterTextChanged(Editable s) {
+
+                    }
+                });
+            }
+        });
+        binding.ivA.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                System.out.println("鐐瑰嚮浜咥");
+                System.out.println(v.isClickable());
+                System.out.println(viewModel.getTypeLiveData().getValue());
             }
         });
     }
@@ -112,29 +257,13 @@
     public void collapseView(View initialView,View collapsedView){
         int initialHeight = initialView.getMeasuredHeight();
         int collapsedHeight = collapsedView.getMeasuredHeight();
-        int distanceToCollapse = (int) (initialHeight - collapsedHeight);
-
-        Animation a = new Animation() {
-            @Override
-            protected void applyTransformation(float interpolatedTime, Transformation t) {
-                if (interpolatedTime == 1){
-                }
-                initialView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
-                initialView.requestLayout();
-            }
-
-            @Override
-            public boolean willChangeBounds() {
-                return true;
-            }
-        };
-        a.setDuration(500);
-        initialView.startAnimation(a);
+        Utils.pullCollapse(initialView,initialHeight,collapsedHeight);
     }
     public void expendView(View initialView){
         int initialHeight = initialView.getMeasuredHeight();
         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();
@@ -151,4 +280,8 @@
         animator.start();
     }
 
+    @Override
+    public void onLeftClick(TitleBar titleBar) {
+        finish();
+    }
 }

--
Gitblit v1.9.1