Функциональность Spinner не работает на Android 6.0.1
Я использую Spinner
для отображения некоторых значений. И странная проблема в том, что
Выделение отображается правильно, но когда я выбираю любой элемент из раскрывающегося списка, в поле не отображается.
И странно, что эта функциональность работает на всех операционных системах Android before 6.0.1(i.e. 6.0.0 and previous)
.
Я также пробовал AppCompatSpinner
, и результат был таким же.
main.xml:
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:entries="@array/values" />
Main.java:
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setSelection(5); // Not displaying 5th item, Yes! there are more than 5 items.
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
spinner.setSelection(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
spinner.setSelection(5);
}
});
Ответы
Ответ 1
Странно, что я отвечаю на свой вопрос. Но после большого количества исследований, наконец, я нашел решение.
Решение:
В коде, который я ранее писал, нет ничего плохого.
Это просто вопрос о внутреннем заполнении в Android OS 6.0.1
В выпуске Android OS 6.0.1 они внесли некоторые изменения во внутреннее дополнение Spinner
.
После прочтения этого связанного вопроса на SO я скорректировал ширину Spinner
и сделал ее видимой во всех версиях ОС Android.