From 454a84caa83c4ebc1b4c422f10166bddfb0e03ec Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期四, 21 九月 2023 21:53:30 +0800
Subject: [PATCH] 1、修复添加按钮消失问题\n2、修改家族导图\n3、新增便捷添加功能\n4、新增修改头像功能\n5、个人财产增加搜索条件

---
 app/src/main/java/com/application/zhangshi_app_android/widget/Node.java |   62 +++++++++++++-----------------
 1 files changed, 27 insertions(+), 35 deletions(-)

diff --git a/app/src/main/java/com/application/zhangshi_app_android/widget/Node.java b/app/src/main/java/com/application/zhangshi_app_android/widget/Node.java
index 1f4276f..71c81ad 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/widget/Node.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/widget/Node.java
@@ -1,27 +1,23 @@
 package com.application.zhangshi_app_android.widget;
 
 import android.content.Context;
+import android.graphics.Color;
 import android.graphics.Path;
-import android.graphics.drawable.ColorDrawable;
-import android.view.Gravity;
+import android.graphics.Typeface;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
-import android.widget.PopupWindow;
 import android.widget.TextView;
 
 import androidx.constraintlayout.utils.widget.ImageFilterView;
-import androidx.databinding.DataBindingUtil;
 
 import com.android.app_base.manager.AppManager;
 import com.android.app_base.utils.GlideUtil;
 import com.android.app_base.utils.ScreenSizeUtils;
 import com.application.zhangshi_app_android.R;
 import com.application.zhangshi_app_android.bean.HomeRootBean;
-import com.application.zhangshi_app_android.databinding.PopBasicInformationBinding;
-import com.otaliastudios.zoom.ZoomLayout;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
@@ -38,7 +34,7 @@
     protected HomeRootBean member;//鎴愬憳
     protected Node parent;//鐖惰妭鐐�
     protected final List<Node> children = new ArrayList<>(); //瀛愯妭鐐�
-
+    protected HomeMindMapLayout.OnItemClickListener onItemClickListener;
     protected static final int pathLength = ScreenSizeUtils.dip2px(20);// 杩炵嚎鐨勪竴鑸暱搴�
     protected static final int  cornerRadius = ScreenSizeUtils.dip2px(5); // 杩炵嚎鎷愯 鍦嗚鍗婂緞
 
@@ -69,7 +65,6 @@
         if (member != null) {
             // 閫掑綊鍒涘缓瀛愯妭鐐�
             if (member.getChildList() != null && member.getChildList().size() > 0) {
-                // 鎵�鏈夊彲瑙佺殑瀛愯妭鐐归渶瑕佺殑瀹介珮鎬诲拰
                 for (HomeRootBean child : member.getChildList()) {
                     // 鏍规嵁鏄惁鏈夐厤鍋跺垱寤轰笉鍚岀殑鑺傜偣
                     if (child != null) {
@@ -196,7 +191,13 @@
     protected abstract void setViewPosition(int x, int centerY);
     protected abstract void setForkYList(List<Integer> yList);
 
-    protected View createItemView(HomeRootBean bean) {
+    /**
+     *  鍒涘缓鑺傜偣item瑙嗗浘
+     * @param bean 鑺傜偣鏁版嵁
+     * @param isFamily 鏄惁鏄湰瀹舵垚鍛�
+     * @return 鑺傜偣item瑙嗗浘
+     */
+    protected View createItemView(HomeRootBean bean,boolean isFamily){
         // 浣跨敤甯冨眬濉厖鍣ㄥ姞杞借妭鐐瑰竷灞�
         LayoutInflater inflater = LayoutInflater.from(context);
         View familyMemberView = inflater.inflate(R.layout.item_family_member, null, false);
@@ -215,6 +216,10 @@
         ImageFilterView iv_avatar = familyMemberView.findViewById(R.id.iv_avatar);
         TextView tv_name = familyMemberView.findViewById(R.id.tv_name);
 
+        if (!isFamily){
+            tv_name.setTextColor(Color.parseColor("#FF8296C5"));
+            tv_name.setTypeface(Typeface.DEFAULT);
+        }
         // 璁剧疆鑺傜偣鍐呭
         tv_generation.setText(String.valueOf(bean.getIdentity()));
         if (bean.getImg() != null) {
@@ -225,30 +230,9 @@
         familyMemberView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                PopBasicInformationBinding mBinding= DataBindingUtil.inflate(inflater,R.layout.pop_basic_information,null,false);
-                PopupWindow popupWindow = new PopupWindow();
-                // 璁剧疆甯冨眬鏂囦欢
-                popupWindow.setContentView(mBinding.getRoot());
-                // 涓轰簡閬垮厤閮ㄥ垎鏈哄瀷涓嶆樉绀猴紝闇�瑕侀噸鏂拌缃竴涓嬪楂�
-                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_operate);
-                // 璁剧疆pop鑾峰彇鐒︾偣锛屽鏋滀负false鐐瑰嚮杩斿洖鎸夐挳浼氶��鍑哄綋鍓岮ctivity锛屽鏋減op涓湁Editor鐨勮瘽锛宖ocusable蹇呴』瑕佷负true
-                popupWindow.setFocusable(true);
-                // 璁剧疆pop鍙偣鍑伙紝涓篺alse鐐瑰嚮浜嬩欢鏃犳晥锛岄粯璁や负true
-                popupWindow.setTouchable(true);
-                // 璁剧疆鐐瑰嚮pop澶栦晶娑堝け锛岄粯璁や负false锛涘湪focusable涓簍rue鏃剁偣鍑诲渚у缁堟秷澶�
-                popupWindow.setOutsideTouchable(false);
-
-                mBinding.setSelfBean(bean);
-                mBinding.setSpouseBean(bean.getSpouse());
-                ZoomLayout zoomLayout = (ZoomLayout) familyMemberView.getParent().getParent();
-                popupWindow.setHeight(zoomLayout.getHeight());
-                popupWindow.setWidth(zoomLayout.getWidth());
-                popupWindow.showAtLocation((View) familyMemberView.getParent().getParent(), Gravity.BOTTOM,0,0);
+                if (onItemClickListener != null){
+                    onItemClickListener.onItemClick(familyMemberView,bean);
+                }
             }
         });
         return familyMemberView;
@@ -485,12 +469,12 @@
 
     // 鑾峰彇 姣忎釜 itemView 鐨勫搴�
     public int getItemViewWidth(){
-        View itemView =  createItemView(null);
+        View itemView =  createItemView(null,false);
         return itemView.getMeasuredWidth();
     }
     // 鑾峰彇 姣忎釜 itemView 鐨勯珮搴�
     public int getItemViewHeight(){
-        View itemView =  createItemView(null);
+        View itemView =  createItemView(null,false);
         return itemView.getMeasuredHeight();
     }
     //鑾峰彇灞曞紑鎸夐挳鐨勫搴�
@@ -503,4 +487,12 @@
     public int getViewWidth(){
         return viewBottom - viewTop;
     }
+
+    public void setOnItemClickListener(HomeMindMapLayout.OnItemClickListener onItemClickListener) {
+        this.onItemClickListener = onItemClickListener;
+        //鎵�鏈夌殑瀛愯妭鐐逛篃璁剧疆
+        for (Node child : children) {
+            child.setOnItemClickListener(onItemClickListener);
+        }
+    }
 }

--
Gitblit v1.9.1