Android Spinner переходит к предыдущим выбранным позициям

Я использую AppCompatSpinner, чтобы показать список состояний. Изначально я сохранил элемент первой позиции. Затем «После», если я нажму на счетчик и попытаюсь медленно прокручивать, он перейдет в предыдущую позицию. если я прокручиваю немного быстро, это работает. Во время медленной прокрутки и длительного нажатия на счетчик элемент списка создает проблему. Кто-нибудь знает, как решить эту проблему? вот мой спиннер.

   <androidx.appcompat.widget.AppCompatSpinner
                    android:id="@+id/stateSpinner"
                    style="@style/Widget.AppCompat.Spinner.Underlined"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:theme="@style/SpinnerStyle"/>


       val adapter = ArrayAdapter(
        context,
        R.layout.spinner_item, stateList
    )

    adapter.setDropDownViewResource(R.layout.spinner_dropdown_item)
    stateSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
        override fun onItemSelected(adapterView: AdapterView<*>, view: View, i: Int, l: Long) {
            viewModelOffice.officeSelectedState.set(stateList.get(i))

        }

        override fun onNothingSelected(adapterView: AdapterView<*>) {
        }
    }
    stateSpinner.adapter = adapter
    stateSpinner.setSelection(selectedPosition)
}

В теме я просто устанавливаю цвета. Минимальная версия приложения - 21. Любая помощь будет оценена.


person karthi keyan    schedule 05.03.2019    source источник
comment
покажи код адаптера   -  person Bipin Gawand    schedule 05.03.2019
comment
@Bipin, можешь проверить сейчас?   -  person karthi keyan    schedule 05.03.2019
comment
Непонятно, что вы спрашиваете. Попробуйте перефразировать и предоставить больше контекста и кода.   -  person shkschneider    schedule 05.03.2019
comment
@shkschneider У меня есть счетчик с длинным списком предметов. Что я заметил, так это то, что всякий раз, когда я пытаюсь медленно прокручивать элементы счетчика, он внезапно возвращает меня к началу выбора счетчика. Я просто использую стандартный Spinner с простым ArrayAdapter. На самом деле это не проблема, но немного раздражает то, что всякий раз, когда пользователь медленно прокручивает страницу, выбор сбрасывается до самого верха. Можно скинуть список, но если прокручивать медленно, держа палец на экране, он снова прокручивается вверх по списку.   -  person karthi keyan    schedule 06.03.2019
comment
Я столкнулся с той же проблемой. Я предполагаю, что проблема связана с androidx. Но до сих пор не найти дорогу...   -  person Hoa Nguyen    schedule 18.03.2019
comment
Есть ли прогресс в этом? У меня такая же проблема. Тот же код до Android X этого не делал.   -  person mike_x_    schedule 19.03.2019
comment
@mike_x_ смотрите ответ ниже   -  person karthi keyan    schedule 21.03.2019
comment
Ответ @HoaNguyen ниже решил мою проблему   -  person karthi keyan    schedule 21.03.2019
comment
@karthikeyan спасибо, это мой ответ в stackoverflow.com/questions/48328592/. Отсутствует статус обновления для вашей темы   -  person Hoa Nguyen    schedule 22.03.2019


Ответы (1)


Наконец-то это сработало для меня

Проблема в библиотеках обновлений androidx

Решить, изменив версию appcompat с "alpha02/alpha03" обратно на "alpha01"

реализация 'androidx.appcompat:appcompat:1.1.0-alpha01'

или лучше

реализация 'androidx.appcompat:appcompat:1.0.2' -> для более стабильной работы

person karthi keyan    schedule 20.03.2019
comment
То же самое. Поскольку я все равно minSdkVersion 21, я только что создал новый класс NoSupportSpinner extends Spinner, чтобы избежать поломки AppCompatSpinner - person rockgecko; 06.06.2019