Spinner 功能不适用于 Android 6.0.1
Spinner functionality not working on Android 6.0.1
我正在使用 Spinner
来显示一些值。奇怪的是
The dropdown is displaying correctly, but when I select any item from dropdown, is not displayed in the box.
奇怪的是,此功能适用于所有 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);
}
});
奇怪的是我在回答我自己的问题。但经过大量研究后,我终于找到了解决方案。
解法:
我之前写的代码没有错。
这只是 Android OS 6.0.1
中的内部填充问题
In the release of Android OS 6.0.1 they made some changes in inner padding of a Spinner
.
在 SO 上阅读此 后,我调整了我的 Spinner
宽度并使其在所有 Android OS 版本中可见。
我正在使用 Spinner
来显示一些值。奇怪的是
The dropdown is displaying correctly, but when I select any item from dropdown, is not displayed in the box.
奇怪的是,此功能适用于所有 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);
}
});
奇怪的是我在回答我自己的问题。但经过大量研究后,我终于找到了解决方案。
解法:
我之前写的代码没有错。 这只是 Android OS 6.0.1
中的内部填充问题In the release of Android OS 6.0.1 they made some changes in inner padding of a
Spinner
.
在 SO 上阅读此 Spinner
宽度并使其在所有 Android OS 版本中可见。