在我的项目中,所有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部分,我不做任何与颜色有关的事情。可能导致所有这些文本变白的原因是什么?
编辑:只有微调器有问题。我可以改变其他元素&#39;文字颜色。但即使我插入了textColor,我也无法改变微调器:&#34;#000000&#34;与纺纱厂有关的任何地方。
答案 0 :(得分:8)
已找到理由。
当我在其他程序中使用其他微调器时,我意识到这个奇怪的事实导致字体变白。即使这个问题看起来像样式问题,其根本原因在于应用程序上下文。在我的旧代码中,我使用以下代码填充Spinner;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, list);
然后我更改了context参数,如下所示;
ArrayAdapter<String> adapter= new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, list);
然后所有不受欢迎的白色字体变黑了!
如果您使用getApplicationContext()
作为上下文参数,则某些样式可能不正确。因此,尝试在适配器中直接调用类似YourActivity.this
的硬编码上下文将解决问题。
答案 1 :(得分:3)
应用于您的项目的主题样式可能会导致此问题,请尝试更改您清单中的主题属性。整个应用文字颜色只能从主题中更改样式。 尝试从清单文件中删除主题标记,并检查颜色是否更改为默认值,然后您可以创建自己的主题,并在其上应用任何颜色文本。
答案 2 :(得分:2)
创建xml文件spinner_dropdown_item.xml并粘贴以下代码:
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:textColor="#000000"
android:textSize="23sp"
android:padding="17dip"/>
在.java文件中添加代码:
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(
getApplicationContext(),
android.R.layout.simple_spinner_item, list);
//This line sets spinner_dropdown_item.xml as your spinner item
dataAdapter
.setDropDownViewResource(R.layout.spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
答案 3 :(得分:1)
您可能在布局中意外更改了应用主题。所以你只需要改变主题。转到任何布局并以图形布局打开,然后您可以在顶部调色板中看到应用程序主题选项。将其更改为任何白色。要更改整个应用布局主题,您可以在下面的manifest.like中执行此操作。
<application android:theme="@style/AppTheme" >---- </application>