From ecaf8069072e71db4bff94671e72764b211d6af1 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期四, 26 十月 2023 00:43:51 +0800
Subject: [PATCH] 功能完善

---
 app/src/main/java/com/application/zhangshi_app_android/widget/Node.java |   60 +++++++++++++++++++++++++++---------------------------------
 1 files changed, 27 insertions(+), 33 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 71c81ad..5c98ec3 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
@@ -12,12 +12,15 @@
 import android.widget.TextView;
 
 import androidx.constraintlayout.utils.widget.ImageFilterView;
+import androidx.core.content.res.ResourcesCompat;
+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.ItemFamilyMemberBinding;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
@@ -100,7 +103,7 @@
      * 閫掑綊璁剧疆鎵�鏈夎妭鐐圭殑浣嶇疆
      * @param topNode 椤堕儴鑺傜偣锛岃繖棰楄妭鐐规爲鐨勬渶涓婅竟鐨勮妭鐐�
      * @param rootNode 鏍硅妭鐐癸紝杩欓鑺傜偣鏍戠殑鏍硅妭鐐�
-     *                startNode 蹇呴』鏄� topNode 绁栧厛鑺傜偣
+     *                rootNode 蹇呴』鏄� topNode 绁栧厛鑺傜偣
      * @param x 鏁撮鑺傜偣鏍戠殑x鍧愭爣
      * @param y 鏁撮鑺傜偣鏍戠殑y鍧愭爣
      */
@@ -189,6 +192,7 @@
 
     // 璁剧疆瀵瑰簲绫诲瀷鑺傜偣鐨勪綅缃� 鐢卞瓙绫诲疄鐜�
     protected abstract void setViewPosition(int x, int centerY);
+    // 璁剧疆鍒嗗弶鑺傜偣鐨勪綅缃� 鐢卞瓙绫诲疄鐜�,蹇呴』鍏坰etViewPosition鎵嶈兘璋冪敤
     protected abstract void setForkYList(List<Integer> yList);
 
     /**
@@ -200,45 +204,39 @@
     protected View createItemView(HomeRootBean bean,boolean isFamily){
         // 浣跨敤甯冨眬濉厖鍣ㄥ姞杞借妭鐐瑰竷灞�
         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));
+        ItemFamilyMemberBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_family_member, null, false);
+
+        View familyMemberView = binding.getRoot();
 
         // 闃叉addView鏃讹紝鎵�鏈夎繖閲屽垱寤虹殑view鐨勯珮瀹借闄愬埗鎴愪竴鏍风殑
         ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
         familyMemberView.setLayoutParams(params);
 
-        if (bean == null) {
-            return familyMemberView;
-        }
-        // 鑾峰彇甯冨眬涓殑缁勪欢
-        TextView tv_generation = familyMemberView.findViewById(R.id.tv_generation);
-        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) {
-            GlideUtil.loadImage(bean.getImg(), iv_avatar);
-        }
-        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);
+                    onItemClickListener.onItemClick(familyMemberView,bean,isFamily);
                 }
             }
         });
+        if (bean != null) {
+            binding.setBean(bean);
+            if (!isFamily){
+                binding.tvName.setTextColor(Color.parseColor("#FF8296C5"));
+                //鑾峰彇瀛椾綋
+                Typeface typeface = ResourcesCompat.getFont(context, com.android.app_base.R.font.roboto_regular);
+                binding.tvName.setTypeface(typeface);
+            }
+            // 浣跨敤databinding鏃犳硶娴嬮噺view鐨勫甫鍐呭鐨勫噯纭楂橈紝鎵�浠ヨ繖閲屾墜鍔ㄨ缃竴涓�
+            binding.tvGeneration.setText(bean.getIdentity()+"");
+        }
+        familyMemberView.measure(View.MeasureSpec.makeMeasureSpec((1 << 30) - 1, View.MeasureSpec.AT_MOST),
+                View.MeasureSpec.makeMeasureSpec((1 << 30) - 1, View.MeasureSpec.AT_MOST));
         return familyMemberView;
     }
     protected ImageView createExpandIconView() {
-        ImageView expandView = new ImageView(AppManager.getAppManager().currentActivity());
+        ImageView expandView = new ImageView(context);
         FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(pathLength,pathLength);
         expandView.setLayoutParams(params);
         int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(pathLength, View.MeasureSpec.EXACTLY);
@@ -468,15 +466,11 @@
     }
 
     // 鑾峰彇 姣忎釜 itemView 鐨勫搴�
-    public int getItemViewWidth(){
-        View itemView =  createItemView(null,false);
-        return itemView.getMeasuredWidth();
-    }
+    public abstract int getItemViewWidth();
+
     // 鑾峰彇 姣忎釜 itemView 鐨勯珮搴�
-    public int getItemViewHeight(){
-        View itemView =  createItemView(null,false);
-        return itemView.getMeasuredHeight();
-    }
+    public abstract int getItemViewHeight();
+
     //鑾峰彇灞曞紑鎸夐挳鐨勫搴�
     public int getExpandIconWidth(){
         ImageView expandIconView = createExpandIconView();

--
Gitblit v1.9.1