0

我正在使用 Kotlin 开发一个应用程序(如果您不了解 kotlin,我相信您仍然可以帮助您获得 Android/Java 体验)

细节:

我的应用程序中有一个 Spinner。虽然它在弹出后没有响应点击,甚至显示一些奇怪的视图。因此, OnItemSelected 侦听器也永远不会被触发。

我启动了从 AsyncRealm 调用更新微调器的方法。

这是代码:

整个函数运行,微调器不为空,附加监听器后,它也不再为空(调试时)。

    private fun updateCategorySpinner(result: MutableList<Category>) {
        info("updateCategorySpinner")
        val arrayAdapter: ArrayAdapter<String> = ArrayAdapter(ctx, R.layout.spinner_item, result.map{ it.category })
        arrayAdapter.setDropDownViewResource(R.layout.spinner_item)
        arrayAdapter.notifyDataSetChanged()
        categorySpinner.adapter = arrayAdapter
        info("updateCategorySpinner done")
    }

result.map{..} 创建一个带有类别名称的 MutableList。

问题:

我不知道为什么会有这些箭头,但无论我使用什么布局(即使只是一个简单的 TextView),它们都在那里

我在这里想念什么?

禁用侦听器无济于事。

用 Anko 附加监听器并没有帮助。

监听器在初始化时触发一次,就是这样。

一旦下拉菜单打开,它就完全卡住了。

我正在用 Anko 创建我的观点。

R.layout.spinner-item只是<Textview>一个.

class AddTodoFragmentUi:AnkoComponent<ViewGroup>,AnkoLogger {
    override fun createView(ui: AnkoContext<ViewGroup>): View {
        val editTextTheme = R.style.Widget_AppCompat_EditText

        return with(ui){
            verticalLayout {
                info("inVerticalLayout")
                verticalPadding =dip(15)
                gravity = Gravity.CENTER
                editText(editTextTheme){
                    id = R.id.txt_todo_desc
                    hintResource = R.string.txt_todo_desc_hint
                    width = matchParent

                }
                spinner(R.style.Widget_AppCompat_Spinner){
                    id= R.id.spinner_todo_category
                    prompt = "Select a Category"
                }
                button{
                    id = R.id.btn_add_todo
                    textResource = R.string.btn_add_todo
                    width = matchParent

                }
                button{
                    id = R.id.btn_del_todo
                    textResource = R.string.btn_del_todo
                    width = matchParent
                    visibility = View.INVISIBLE

                }

            }.applyRecursively {view -> when(view){
                is EditText -> view.textSize = 20f
                is Button -> view.textSize = 30f
            }
            }
        }
    }

图片:

微调器下拉

4

1 回答 1

0

好的,所以无响应的问题在于设置 Widget_app_compact 微调器主题。

 spinner(R.style.Widget_AppCompat_Spinner){
                    id= R.id.spinner_todo_category
                    prompt = "Select a Category"

删除它可以解决问题。

请不要像我一样浪费两天时间,请:D。

于 2016-11-11T08:00:31.050 回答