From 819940c20dfb8a0c797b3423a3c0a0c67c9fd955 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期五, 27 十二月 2024 18:06:23 +0800 Subject: [PATCH] 处理后台运行被释放的问题 --- app/src/main/java/com/hdl/photovoltaic/widget/BTypeTitleListDialog.java | 70 +++++++++------------------------- 1 files changed, 19 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/BTypeTitleListDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/BTypeTitleListDialog.java index 52ebcfe..54d23da 100644 --- a/app/src/main/java/com/hdl/photovoltaic/widget/BTypeTitleListDialog.java +++ b/app/src/main/java/com/hdl/photovoltaic/widget/BTypeTitleListDialog.java @@ -1,10 +1,11 @@ package com.hdl.photovoltaic.widget; -import android.annotation.SuppressLint; -import android.app.Dialog; import android.content.Context; import android.os.Bundle; -import android.view.View; +import android.view.Gravity; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; @@ -12,6 +13,7 @@ import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.BaseDialog; import com.hdl.photovoltaic.databinding.DialogTypeTitleListBBinding; +import com.hdl.photovoltaic.utils.UnitConversionUtils; import com.hdl.photovoltaic.widget.adapter.TypeListDialogAdapter; import java.util.List; @@ -23,23 +25,34 @@ private TypeListDialogAdapter typeListDialogAdapter; private Context mContext; + String mSelectType; private List<String> mList; - public BTypeTitleListDialog(@NonNull Context context, List<String> list) { + public BTypeTitleListDialog(@NonNull Context context, List<String> list, String selectType) { super(context, R.style.Custom_Dialog); this.mContext = context; this.mList = list; + this.mSelectType = selectType; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + Window window = getWindow(); + if (window != null) { + window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + WindowManager.LayoutParams layoutParams = window.getAttributes(); + layoutParams.gravity = Gravity.START | Gravity.TOP; + layoutParams.width = (int) UnitConversionUtils.dpToPx(mContext, 375 - 32); + layoutParams.x = (int) UnitConversionUtils.dpToPx(mContext, 16); + layoutParams.y = (int) UnitConversionUtils.dpToPx(mContext, 200-5); + window.setAttributes(layoutParams); + } viewBinding = DialogTypeTitleListBBinding.inflate(getLayoutInflater()); setContentView(viewBinding.getRoot()); - setDialogTouchOutsideCloseable(this); LinearLayoutManager linearLayout = new LinearLayoutManager(mContext); - typeListDialogAdapter = new TypeListDialogAdapter(this.mList, mContext); + typeListDialogAdapter = new TypeListDialogAdapter(this.mList, mContext, this.mSelectType); viewBinding.typeListRl.setLayoutManager(linearLayout); viewBinding.typeListRl.setAdapter(typeListDialogAdapter); typeListDialogAdapter.setItemOnclickListener(new TypeListDialogAdapter.OnclickListener() { @@ -56,54 +69,9 @@ @Override protected void onStart() { super.onStart(); -// // 鑾峰彇绐楀彛瀵硅薄 -// Window dialogWindow = this.getWindow(); -// if (dialogWindow != null) { -// // 鑾峰彇瀵硅瘽妗嗗綋鍓嶇殑鍙傛暟鍊� -// WindowManager.LayoutParams p = dialogWindow.getAttributes(); -// p.width = LinearLayout.LayoutParams.MATCH_PARENT; -// p.height = LinearLayout.LayoutParams.WRAP_CONTENT; -//// p.dimAmount = 0.6f; -// dialogWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); -// p.gravity = Gravity.BOTTOM; -// p.y = DensityUtils.dip2px(mContext, 352); -//// //杩欓噷璁剧疆鐨勫楂樹紭鍏堢骇楂樹簬XML涓殑甯冨眬璁剧疆 -//// if (this.enumBoxType == BoxType.PhotoAlbumBox) { -//// p.gravity = Gravity.BOTTOM; -//// } else if (this.enumBoxType == BoxType.FlashingBox) { -//// p.dimAmount = 0f; -//// } -// // 璁剧疆鍒板睘鎬ч厤缃腑 -// dialogWindow.setAttributes(p); -// } -// setDialogTouchOutsideCloseable(this); } - @SuppressLint("ClickableViewAccessibility") - public void setDialogTouchOutsideCloseable(Dialog dialog) { - viewBinding.typeParentCl.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - int top = viewBinding.dialogParentCl.getTop(); - int left = viewBinding.dialogParentCl.getLeft(); - int bottom = viewBinding.dialogParentCl.getBottom(); - int right = viewBinding.dialogParentCl.getRight(); - int y = (int) v.getY(); - int x = (int) v.getX(); - if (top < y && y < bottom) { - } else { - dismiss(); - } - if (left < x && x < right) { - - } else { - dismiss(); - } - - } - }); - } public void setOnListener(OnClickListener onClickListener) { this.mOnClickListener = onClickListener; -- Gitblit v1.8.0