在我的项目中,所有Spinner字体突然变成白色,这是我找不到的原因.之前他们都是黑人.例如,在微调器中,下拉列表全部为白色.它的
XML文件如下;
<Spinner android:id="@+id/mainactivity_spinner_city" android:fontFamily="Roboto" android:layout_width="250dp" android:layout_height="wrap_content" android:layout_below="@+id/mainactivity_imageview_logo" android:layout_marginTop="15dp" />
为了确保,我将#000000添加到所有相关位置,但列表仍为白色.使用以下方法填充微调器;
ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(context,android.R.layout.simple_spinner_item,list); dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(dataAdapter2);
所以我给simple_spinner_item和simple_spinner_dropdown_item添加了黑色,但仍然没有变化.在Java部分,我没有做任何与颜色有关的事情.可能导致所有这些文本变白的原因是什么?
编辑:只有微调器有问题.我可以改变其他元素的文字颜色.但即使我将textColor:“#000000”插入与旋转器相关的任何地方,我也无法更改微调器.
解决方法
找到了理由.
当我在其他程序中与其他微调器一起处理时,我意识到这个奇怪的事实导致字体变白.即使这个问题看起来像样式问题,其根本原因在于应用程序上下文.在我的旧代码中,我使用以下代码填充Spinner;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),list);
然后我更改了context参数,如下所示;
ArrayAdapter<String> adapter= new ArrayAdapter<String>(MainActivity.this,list);
然后所有不受欢迎的白色字体变黑!
如果使用getApplicationContext()作为上下文参数,则某些样式可能不正确.因此,尝试直接调用上下文硬编码,如适配器中的YourActivity.this将解决问题.