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