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 版本中可见。