Parcourir la source

修复SelectableInput的PopupWindow显示一直false

Frankensteinly il y a 1 an
Parent
commit
d9e68d97b4
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      app/src/main/java/com/grkj/iscs/widget/SelectableInput.kt

+ 6 - 1
app/src/main/java/com/grkj/iscs/widget/SelectableInput.kt

@@ -81,6 +81,7 @@ class SelectableInput(private val ctx: Context, attrs: AttributeSet) : LinearLay
             mPopWindow?.width = mBinding.et.width
             mPopWindow?.height = ViewGroup.LayoutParams.WRAP_CONTENT
             mPopWindow?.isOutsideTouchable = true
+            mPopWindow?.isFocusable = true
 
             val popBinding = LayoutSelectableinputSpinnerBinding.bind(mDropdownView!!)
             popBinding.rvOptions.adapter = object : CommonAdapter<String>(ctx, R.layout.item_rv_selectableinput_spinner, mOptionList) {
@@ -95,7 +96,11 @@ class SelectableInput(private val ctx: Context, attrs: AttributeSet) : LinearLay
             }
         }
 
-        mPopWindow?.showAsDropDown(mBinding.et)
+        if (mPopWindow?.isShowing == false) {
+            mPopWindow?.showAsDropDown(mBinding.et)
+        } else {
+            mPopWindow?.dismiss()
+        }
     }
 
     fun setOnSpinnerSelectListener(onSpinnerSelectListener: OnSpinnerSelectListener) {