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