0

私は Kotlin でアプリを開発しています (kotlin について知らない場合でも、Android/Java の経験を手伝っていただけると確信しています)。

詳細:

アプリにスピナーがありますが、ポップアップするとクリックに反応せず、奇妙なビューが表示されることさえあります。そのため、OnItemSelected リスナーも起動されません。

AsyncRealm 呼び出しからスピナーを更新するメソッドを開始します。

コードは次のとおりです。

この関数全体が実行され、スピナーは null ではなく、リスナーをアタッチした後も null ではなくなります (デバッグ時)。

    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 でリスナーをアタッチしても役に立ちません。

リスナーは、初期化時に 1 回起動します。それだけです。

ドロップダウンが開くと、完全に動かなくなります。

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"

それを削除すると、問題が解決します。

私がこれでやったように2日を無駄にしないでください:D.

于 2016-11-11T08:00:31.050 に答える