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/widget/Node.java |   49 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 39 insertions(+), 10 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..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,6 +1,9 @@
 package com.application.zhangshi_app_android.widget;
 
+import android.content.Context;
+import android.graphics.Color;
 import android.graphics.Path;
+import android.graphics.Typeface;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -27,10 +30,11 @@
  * @desc
  */
 public abstract class Node{
+    protected Context context;
     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); // 杩炵嚎鎷愯 鍦嗚鍗婂緞
 
@@ -55,20 +59,20 @@
     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) {
             // 閫掑綊鍒涘缓瀛愯妭鐐�
             if (member.getChildList() != null && member.getChildList().size() > 0) {
-                // 鎵�鏈夊彲瑙佺殑瀛愯妭鐐归渶瑕佺殑瀹介珮鎬诲拰
                 for (HomeRootBean child : member.getChildList()) {
                     // 鏍规嵁鏄惁鏈夐厤鍋跺垱寤轰笉鍚岀殑鑺傜偣
                     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);
@@ -187,9 +191,15 @@
     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(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));
@@ -206,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) {
@@ -213,9 +227,16 @@
         }
         tv_name.setText(bean.getNickName());
         tv_name.setSelected(true);
+        familyMemberView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (onItemClickListener != null){
+                    onItemClickListener.onItemClick(familyMemberView,bean);
+                }
+            }
+        });
         return familyMemberView;
     }
-
     protected ImageView createExpandIconView() {
         ImageView expandView = new ImageView(AppManager.getAppManager().currentActivity());
         FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(pathLength,pathLength);
@@ -448,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();
     }
     //鑾峰彇灞曞紑鎸夐挳鐨勫搴�
@@ -466,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