diff --git a/app/src/main/java/com/casic/detector/view/MainActivity.kt b/app/src/main/java/com/casic/detector/view/MainActivity.kt index fe3129a..9587efb 100644 --- a/app/src/main/java/com/casic/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/view/MainActivity.kt @@ -146,8 +146,16 @@ override fun initEvent() { rightImageView.setOnClickListener { - val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(this) - samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(this)) + CoroutineScope(Dispatchers.Main).launch { + val labels = withContext(Dispatchers.IO) { + DataBaseManager.get.queryLabelById("0") + } + if (labels.isNotEmpty()) { + samplePopupWindow.setShowPosition(4) + } + val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) + samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(context)) + } } samplePopupWindow.setOnPopupWindowClickListener(object : diff --git a/app/src/main/java/com/casic/detector/view/MainActivity.kt b/app/src/main/java/com/casic/detector/view/MainActivity.kt index fe3129a..9587efb 100644 --- a/app/src/main/java/com/casic/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/view/MainActivity.kt @@ -146,8 +146,16 @@ override fun initEvent() { rightImageView.setOnClickListener { - val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(this) - samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(this)) + CoroutineScope(Dispatchers.Main).launch { + val labels = withContext(Dispatchers.IO) { + DataBaseManager.get.queryLabelById("0") + } + if (labels.isNotEmpty()) { + samplePopupWindow.setShowPosition(4) + } + val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) + samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(context)) + } } samplePopupWindow.setOnPopupWindowClickListener(object : diff --git a/app/src/main/java/com/casic/detector/widgets/SamplePopupWindow.kt b/app/src/main/java/com/casic/detector/widgets/SamplePopupWindow.kt index 9a3f8ea..5fd6585 100644 --- a/app/src/main/java/com/casic/detector/widgets/SamplePopupWindow.kt +++ b/app/src/main/java/com/casic/detector/widgets/SamplePopupWindow.kt @@ -10,9 +10,15 @@ import android.widget.TextView import com.casic.detector.R import com.pengxh.kt.lite.extensions.getScreenWidth +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class SamplePopupWindow constructor(context: Context) : PopupWindow() { private var clickListener: OnPopupWindowClickListener? = null + private var showPosition = -1 + + fun setShowPosition(showPosition: Int) { + this.showPosition = showPosition + } init { width = ((context.getScreenWidth() * 0.35).toInt()) @@ -25,7 +31,7 @@ fun setPopupMenuItem(titleArray: Array) { val popupListView = contentView.findViewById(R.id.popupListView) - popupListView.adapter = object : BaseAdapter() { + val baseAdapter = object : BaseAdapter() { private val inflater: LayoutInflater = LayoutInflater.from(contentView.context) override fun getCount(): Int { return titleArray.size @@ -46,15 +52,22 @@ view = inflater.inflate(R.layout.item_popup_menu, null) holder = PopupWindowHolder() holder.titleView = view.findViewById(R.id.titleView) + holder.tagView = view.findViewById(R.id.tagView) view.tag = holder } else { view = convertView holder = view.tag as PopupWindowHolder } holder.titleView.text = titleArray[position] + if (showPosition == position) { + holder.tagView.visibility = View.VISIBLE + } else { + holder.tagView.visibility = View.INVISIBLE + } return view } } + popupListView.adapter = baseAdapter popupListView.setOnItemClickListener { _, _, position, _ -> clickListener?.onPopupItemClicked(position) dismiss() @@ -71,5 +84,6 @@ internal class PopupWindowHolder { lateinit var titleView: TextView + lateinit var tagView: QMUIRoundButton } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/detector/view/MainActivity.kt b/app/src/main/java/com/casic/detector/view/MainActivity.kt index fe3129a..9587efb 100644 --- a/app/src/main/java/com/casic/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/view/MainActivity.kt @@ -146,8 +146,16 @@ override fun initEvent() { rightImageView.setOnClickListener { - val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(this) - samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(this)) + CoroutineScope(Dispatchers.Main).launch { + val labels = withContext(Dispatchers.IO) { + DataBaseManager.get.queryLabelById("0") + } + if (labels.isNotEmpty()) { + samplePopupWindow.setShowPosition(4) + } + val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) + samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(context)) + } } samplePopupWindow.setOnPopupWindowClickListener(object : diff --git a/app/src/main/java/com/casic/detector/widgets/SamplePopupWindow.kt b/app/src/main/java/com/casic/detector/widgets/SamplePopupWindow.kt index 9a3f8ea..5fd6585 100644 --- a/app/src/main/java/com/casic/detector/widgets/SamplePopupWindow.kt +++ b/app/src/main/java/com/casic/detector/widgets/SamplePopupWindow.kt @@ -10,9 +10,15 @@ import android.widget.TextView import com.casic.detector.R import com.pengxh.kt.lite.extensions.getScreenWidth +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class SamplePopupWindow constructor(context: Context) : PopupWindow() { private var clickListener: OnPopupWindowClickListener? = null + private var showPosition = -1 + + fun setShowPosition(showPosition: Int) { + this.showPosition = showPosition + } init { width = ((context.getScreenWidth() * 0.35).toInt()) @@ -25,7 +31,7 @@ fun setPopupMenuItem(titleArray: Array) { val popupListView = contentView.findViewById(R.id.popupListView) - popupListView.adapter = object : BaseAdapter() { + val baseAdapter = object : BaseAdapter() { private val inflater: LayoutInflater = LayoutInflater.from(contentView.context) override fun getCount(): Int { return titleArray.size @@ -46,15 +52,22 @@ view = inflater.inflate(R.layout.item_popup_menu, null) holder = PopupWindowHolder() holder.titleView = view.findViewById(R.id.titleView) + holder.tagView = view.findViewById(R.id.tagView) view.tag = holder } else { view = convertView holder = view.tag as PopupWindowHolder } holder.titleView.text = titleArray[position] + if (showPosition == position) { + holder.tagView.visibility = View.VISIBLE + } else { + holder.tagView.visibility = View.INVISIBLE + } return view } } + popupListView.adapter = baseAdapter popupListView.setOnItemClickListener { _, _, position, _ -> clickListener?.onPopupItemClicked(position) dismiss() @@ -71,5 +84,6 @@ internal class PopupWindowHolder { lateinit var titleView: TextView + lateinit var tagView: QMUIRoundButton } } \ No newline at end of file diff --git a/app/src/main/res/layout/item_popup_menu.xml b/app/src/main/res/layout/item_popup_menu.xml new file mode 100644 index 0000000..b4f4ba4 --- /dev/null +++ b/app/src/main/res/layout/item_popup_menu.xml @@ -0,0 +1,25 @@ + + + + + + + \ No newline at end of file