自从我升级到Android 8.0(26)以来,我注意到微调器的行为有所不同。下拉菜单项要小得多,最重要的是,点击文本旁边的空白区域不再导致要选择的值,我必须点击实际文本。 Android 6.0(23)并非如此,其中下拉菜单项较大,同时点击空白处也会选择该值。
我注意到只有在通过从代码中设置适配器手动填充微调器时才会发生此问题,而当我在XML布局文件中使用android:entries="@array/...
时则不会发生。
我在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库。
我在华为P20 Lite上制作了这些屏幕截图。奇怪的是,当我在具有相同API级别的模拟器上运行相同的项目时,不会发生此问题。