From e6014ef123350d5c0cadabe9c18e26b3d5a3c729 Mon Sep 17 00:00:00 2001
From: guoshen <3129367635@qq.com>
Date: 星期六, 29 六月 2024 15:41:25 +0800
Subject: [PATCH] Revert "Initial commit"
---
app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java | 299 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 251 insertions(+), 48 deletions(-)
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
index 1ee6cfc..86c2569 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
@@ -1,23 +1,40 @@
package com.application.zhangshi_app_android.ui.function;
-import android.graphics.drawable.ColorDrawable;
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ValueAnimator;
import android.view.View;
import android.view.ViewGroup;
+import android.view.animation.Animation;
+import android.view.animation.Transformation;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
import android.widget.PopupWindow;
-import androidx.databinding.DataBindingUtil;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.lifecycle.Observer;
+
+import com.android.app_base.manager.AppManager;
import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.ToastUtils;
import com.android.app_base.widget.LinearItemDecoration;
import com.application.zhangshi_app_android.BR;
import com.application.zhangshi_app_android.R;
-import com.application.zhangshi_app_android.adapter.FamilyAssetsRvAdapter;
+import com.application.zhangshi_app_android.adapter.GrowthExperienceAbroadConditionRvAdapter;
+import com.application.zhangshi_app_android.adapter.GrowthExperienceHolderConditionRvAdapter;
import com.application.zhangshi_app_android.adapter.GrowthExperiencePrimaryRvAdapter;
+import com.application.zhangshi_app_android.adapter.GrowthExperienceRelationshipRvAdapter;
+import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean;
+import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean;
import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
+import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean;
+import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean;
import com.application.zhangshi_app_android.databinding.ActivityGrowthExperienceBinding;
import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.google.android.material.tabs.TabLayout;
+import com.hjq.bar.TitleBar;
-import java.util.ArrayList;
import java.util.List;
/**
@@ -26,7 +43,12 @@
* @desc 鎴愰暱缁忓巻 GrowthExperienceActivity
*/
public class GrowthExperienceActivity extends DLBaseActivity<ActivityGrowthExperienceBinding,GrowthExperienceActivityViewModel> {
- private GrowthExperiencePrimaryRvAdapter adapter;
+ private GrowthExperiencePrimaryRvAdapter primaryRvAdapter;
+ private GrowthExperienceRelationshipRvAdapter relationshipRvAdapter;
+ private GrowthExperienceHolderConditionRvAdapter holderConditionRvAdapter;
+ private GrowthExperienceAbroadConditionRvAdapter abroadConditionRvAdapter;
+
+ private PopupWindow mOperatePopupWindow;
@Override
@@ -41,68 +63,249 @@
@Override
public void initParam() {
- GrowthExperienceBean bean = new GrowthExperienceBean("name", "date", "content");
- List<GrowthExperienceBean> dataList=new ArrayList<>();
- dataList.add(new GrowthExperienceBean("2010-2016","**灏忓","寮犱笁"));
- dataList.add(new GrowthExperienceBean("2017-2020","**涓","鏉庡洓"));
- adapter=new GrowthExperiencePrimaryRvAdapter(this,dataList);
+
}
-
-
@Override
public void initView() {
- adapter = new GrowthExperiencePrimaryRvAdapter(this);
+ primaryRvAdapter = new GrowthExperiencePrimaryRvAdapter(this);
+ relationshipRvAdapter = new GrowthExperienceRelationshipRvAdapter(this);
+ holderConditionRvAdapter = new GrowthExperienceHolderConditionRvAdapter(this );
+ abroadConditionRvAdapter = new GrowthExperienceAbroadConditionRvAdapter(this);
+
LinearItemDecoration itemDecoration = new LinearItemDecoration();
itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
- itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
- itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
- binding.rvPrimary.addItemDecoration(itemDecoration);
- binding.rvPrimary.setAdapter(adapter);
- binding.rvRelationship.addItemDecoration(itemDecoration);
- binding.rvRelationship.setAdapter(adapter);
- binding.rvCertificates.addItemDecoration(itemDecoration);
- binding.rvCertificates.setAdapter(adapter);
- binding.rvAbroad.addItemDecoration(itemDecoration);
- binding.rvAbroad.setAdapter(adapter);
+ binding.rvPrimary.addItemDecoration(itemDecoration);
+ binding.rvPrimary.setNestedScrollingEnabled(false);
+ binding.rvPrimary.setAdapter(primaryRvAdapter);
+ binding.rvRelationship.addItemDecoration(itemDecoration);
+ binding.rvRelationship.setNestedScrollingEnabled(false);
+ binding.rvRelationship.setAdapter(relationshipRvAdapter);
+ binding.rvCertificates.addItemDecoration(itemDecoration);
+ binding.rvCertificates.setNestedScrollingEnabled(false);
+ binding.rvCertificates.setAdapter(holderConditionRvAdapter);
+ binding.rvAbroad.addItemDecoration(itemDecoration);
+ binding.rvAbroad.setNestedScrollingEnabled(false);
+ binding.rvAbroad.setAdapter(abroadConditionRvAdapter);
+
+ mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_personal_notepad,null));
+ mOperatePopupWindow.getContentView().findViewById(R.id.layout_personal_notepad).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ mOperatePopupWindow.dismiss();
+ AppManager.getAppManager().startActivity(PersonalNotepadActivity.class);
+ }
+ });
+ binding.ivOperate.setOnClickListener(v -> {
+ mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+ });
+
+ 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.getInfo();
viewModel.getGrowthExperience();
+ viewModel.getRelation();
+ viewModel.getHolder();
+ viewModel.getAbroad();
+ viewModel.getGrowthExperienceAutobiography();
}
@Override
public void initLiveDataObserve() {
- ActivityGrowthExperienceBinding binding1= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience);
- ActivityGrowthExperienceBinding binding2= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience);
- ActivityGrowthExperienceBinding binding3= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience);
- ActivityGrowthExperienceBinding binding4= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience);
-
- viewModel.getDataListLiveData().observe(this, GrowthExperienceBeans -> {
- adapter.setData(GrowthExperienceBeans);
+ viewModel.getIsExperienceExpendedLiveData().observe(this, aBoolean -> {
+ if (aBoolean){
+ binding.layoutExperienceTitle.setOnClickListener(view -> {
+ collapseView(binding.layoutExperience,binding.layoutExperienceTitle);
+ viewModel.getIsExperienceExpendedLiveData().setValue(false);
+ });
+ }else {
+ binding.layoutExperienceTitle.setOnClickListener(view -> {
+ expendView(binding.layoutExperience);
+ viewModel.getIsExperienceExpendedLiveData().setValue(true);
+ });
+ }
});
+ viewModel.getIsRelationExpendedLiveData().observe(this, aBoolean -> {
+ if (aBoolean){
+ binding.layoutRelationTitle.setOnClickListener(view -> {
+ collapseView(binding.layoutRelation,binding.layoutRelationTitle);
+ viewModel.getIsRelationExpendedLiveData().setValue(false);
+ });
+ }else {
+ binding.layoutRelationTitle.setOnClickListener(view -> {
+ expendView(binding.layoutRelation);
+ viewModel.getIsRelationExpendedLiveData().setValue(true);
+ });
+ }
+ });
+ viewModel.getIsHolderExpendedLiveData().observe(this, aBoolean -> {
+ if (aBoolean){
+ binding.layoutHolderTitle.setOnClickListener(view -> {
+ collapseView(binding.layoutHolder,binding.layoutHolderTitle);
+ viewModel.getIsHolderExpendedLiveData().setValue(false);
+ });
+ }else {
+ binding.layoutHolderTitle.setOnClickListener(view -> {
+ expendView(binding.layoutHolder);
+ viewModel.getIsHolderExpendedLiveData().setValue(true);
+ });
+ }
+ });
+ viewModel.getIsAbroadExpendedLiveData().observe(this, aBoolean -> {
+ if (aBoolean){
+ binding.layoutAbroadTitle.setOnClickListener(view -> {
+ collapseView(binding.layoutAbroad,binding.layoutAbroadTitle);
+ viewModel.getIsAbroadExpendedLiveData().setValue(false);
+ });
+ }else {
+ binding.layoutAbroadTitle.setOnClickListener(view -> {
+ expendView(binding.layoutAbroad);
+ viewModel.getIsAbroadExpendedLiveData().setValue(true);
+ });
+ }
+ });
+ viewModel.getExperienceListLiveData().observe(this, new Observer<List<GrowthExperienceBean>>() {
+ @Override
+ public void onChanged(List<GrowthExperienceBean> growthExperienceBeans) {
+ primaryRvAdapter.setData(growthExperienceBeans);
+ }
+ });
+ viewModel.getRelationLiveData().observe(this, new Observer<List<GrowthExperienceRelationshipBean>>() {
+ @Override
+ public void onChanged(List<GrowthExperienceRelationshipBean> growthExperienceRelationshipBeans) {
+ relationshipRvAdapter.setData(growthExperienceRelationshipBeans);
+ }
+ });
+ viewModel.getHolderLiveData().observe(this, new Observer<List<GrowthExperienceHolderConditionBean>>() {
+ @Override
+ public void onChanged(List<GrowthExperienceHolderConditionBean> growthExperienceHolderConditionBeans) {
+ holderConditionRvAdapter.setData(growthExperienceHolderConditionBeans);
+ }
+ });
+ viewModel.getAbroadLiveData().observe(this, new Observer<List<GrowthExperienceAbroadConditionBean>>() {
+ @Override
+ public void onChanged(List<GrowthExperienceAbroadConditionBean> growthExperienceAbroadConditionBeans) {
+ abroadConditionRvAdapter.setData(growthExperienceAbroadConditionBeans);
+ }
+ });
+ viewModel.getAutobiographyLiveData().observe(this, new Observer<List<GrowthExperienceAutobiographyBean>>() {
+ @Override
+ public void onChanged(List<GrowthExperienceAutobiographyBean> beans) {
+ if (beans==null||beans.size() == 0 ){
+ binding.tvFill.setVisibility(View.GONE);
+ return;
+ }else {
+ binding.tvFill.setVisibility(View.VISIBLE);
+ }
+ binding.tabLayout.removeAllTabs();
+ for (int i = 0; i < beans.size(); i++) {
+ GrowthExperienceAutobiographyBean bean = beans.get(i);
+ String tabText = bean.getAgeBegin()+"-"+bean.getAgeEnd()+"宀�("+bean.getTerm()+")";
+ 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.tvFill.setText(beans.get(0).getContent());
+ binding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+ @Override
+ public void onTabSelected(TabLayout.Tab tab) {
+ binding.tvFill.setText(beans.get(tab.getPosition()).getContent());
+ }
+
+ @Override
+ public void onTabUnselected(TabLayout.Tab tab) {
+
+ }
+
+ @Override
+ public void onTabReselected(TabLayout.Tab tab) {
+
+ }
+ });
+ }
+ });
+
+ }
+ 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);
+ }
+ 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();
+ 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();
}
- private PopupWindow initPopUpWindow(View view){
- PopupWindow popupWindow = new PopupWindow(this);
- // 璁剧疆甯冨眬鏂囦欢
- popupWindow.setContentView(view);
- // 涓轰簡閬垮厤閮ㄥ垎鏈哄瀷涓嶆樉绀猴紝闇�瑕侀噸鏂拌缃竴涓嬪楂�
- popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
- popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
- // 璁剧疆pop閫忔槑鏁堟灉
- popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000));
- // 璁剧疆pop鍑哄叆鍔ㄧ敾
- popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_add);
- // 璁剧疆pop鑾峰彇鐒︾偣锛屽鏋滀负false鐐瑰嚮杩斿洖鎸夐挳浼氶��鍑哄綋鍓岮ctivity锛屽鏋減op涓湁Editor鐨勮瘽锛宖ocusable蹇呴』瑕佷负true
- popupWindow.setFocusable(true);
- // 璁剧疆pop鍙偣鍑伙紝涓篺alse鐐瑰嚮浜嬩欢鏃犳晥锛岄粯璁や负true
- popupWindow.setTouchable(true);
- // 璁剧疆鐐瑰嚮pop澶栦晶娑堝け锛岄粯璁や负false锛涘湪focusable涓簍rue鏃剁偣鍑诲渚у缁堟秷澶�
- popupWindow.setOutsideTouchable(false);
- return popupWindow;
+ @Override
+ public void onLeftClick(TitleBar titleBar) {
+ finish();
}
+
}
--
Gitblit v1.9.1