From efafbbf142c81c233c71de636a2d3ce9dc2124f0 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期二, 12 九月 2023 19:20:05 +0800
Subject: [PATCH] 修复bug

---
 app/src/main/java/com/application/zhangshi_app_android/widget/Node.java |   47 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 42 insertions(+), 5 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 47f0894..1f4276f 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,20 +1,27 @@
 package com.application.zhangshi_app_android.widget;
 
+import android.content.Context;
 import android.graphics.Path;
+import android.graphics.drawable.ColorDrawable;
+import android.view.Gravity;
 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;
@@ -27,6 +34,7 @@
  * @desc
  */
 public abstract class Node{
+    protected Context context;
     protected HomeRootBean member;//鎴愬憳
     protected Node parent;//鐖惰妭鐐�
     protected final List<Node> children = new ArrayList<>(); //瀛愯妭鐐�
@@ -55,7 +63,8 @@
     protected final List<Path> forkPathList = new ArrayList<>();//鍒嗗弶杩炵嚎
     protected final List<View> viewList = new ArrayList<>();
 
-    public Node(HomeRootBean member){
+    public Node(Context context,HomeRootBean member){
+        this.context = context;
         this.member = member;
         if (member != null) {
             // 閫掑綊鍒涘缓瀛愯妭鐐�
@@ -66,9 +75,9 @@
                     if (child != null) {
                         Node node;
                         if (child.getSpouse() != null) {
-                            node = new DoubleNode(child);
+                            node = new DoubleNode(context,child);
                         } else {
-                            node = new SimpleNode(child);
+                            node = new SimpleNode(context,child);
                         }
                         node.parent = this;
                         children.add(node);
@@ -189,7 +198,7 @@
 
     protected View createItemView(HomeRootBean bean) {
         // 浣跨敤甯冨眬濉厖鍣ㄥ姞杞借妭鐐瑰竷灞�
-        LayoutInflater inflater = LayoutInflater.from(AppManager.getAppManager().currentActivity());
+        LayoutInflater inflater = LayoutInflater.from(context);
         View familyMemberView = inflater.inflate(R.layout.item_family_member, null, false);
         familyMemberView.measure(View.MeasureSpec.makeMeasureSpec((1 << 30) - 1, View.MeasureSpec.AT_MOST),
                 View.MeasureSpec.makeMeasureSpec((1 << 30) - 1, View.MeasureSpec.AT_MOST));
@@ -213,9 +222,37 @@
         }
         tv_name.setText(bean.getNickName());
         tv_name.setSelected(true);
+        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);
+            }
+        });
         return familyMemberView;
     }
-
     protected ImageView createExpandIconView() {
         ImageView expandView = new ImageView(AppManager.getAppManager().currentActivity());
         FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(pathLength,pathLength);

--
Gitblit v1.9.1