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