스피너의 속성에는 따로 Scollbar가없어서 isScrollbarFadingEnabled 에 접근을 하면 NullPointerException가 발생한다. 그래서 Reflection를 사용하여 listView에 접근 후 isScrollbarFadingEnabled 속성에 false를 해줘서 항상 Spinner의 scrollbar 항상 보이도록 수정했다.
override fun performClick(): Boolean {
val superResult = super.performClick()
try {
val mPopupField: Field = AppCompatSpinner::class.java.getDeclaredField("mPopup")
mPopupField.isAccessible = true
(mPopupField.get(this) as ListPopupWindow).listView?.isScrollbarFadingEnabled = false
mPopupField.isAccessible = false
} catch (e: NoSuchFieldException) {
e.printStackTrace()
} catch (e: IllegalAccessException) {
e.printStackTrace()
}
return superResult
}