После обновления до Android 8.0 (26) я заметил, что мои счетчики ведут себя по-разному.Выпадающие элементы намного меньше, и, прежде всего, нажатие на пустое место рядом с текстом больше не приводит к выбору значения, я должен нажать на фактический текст.Это было не так с Android 6.0 (23), где выпадающие элементы были больше, и при нажатии на пустое место также выбиралось значение.
Я заметил, что эта проблема возникает, только когда я заполняю свой счетчик вручную, установивадаптер из кода, а не когда я использую android:entries="@array/...
в файле макета XML.
Я использовал отладчик в Android Studio, и я вижу, что значение mDropDownResource
адаптера равно 17367049
длясчетчики, в которых возникает проблема, это значение android.R.layout.simple_spinner_dropdown_item
.Для счетчиков, где значения задаются в XML, это значение равно 2131492931
, поэтому, очевидно, при установке значений в XML используется другой макет / адаптер / что угодно, и я не могу понять, как решить эту проблему.
Это код, который я использую для заполнения счетчика:
ArrayAdapter<String> tagAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, tags);
tagAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sTag.setAdapter(tagAdapter);
Этот проект имеет compileSdkVersion
28, minSdkVersion
26, targetSdkVersion
26 и используетбиблиотека AppCompat.
Я сделал эти снимки экрана на Huawei P20 Lite.Как ни странно, когда я запускаю один и тот же проект на эмуляторе с тем же уровнем API, проблема не возникает.