我正在使用Spinner显示一些值.而奇怪的是这个问题
The dropdown is displaying correctly,but when I select any item from dropdown,is not displayed in the Box.
而且奇怪的是,该功能在6.0.1之前的所有Android操作系统(即6.0.0和之前版本)上都有效.
我也试过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
.
在阅读此related question之后,我调整了我的微调宽度,并使其在所有Android操作系统版本中可见.