我正在使用默认主题(黑暗)和2.2 / API级别8目标。当我在布局中添加一个基本的微调器时,它们看起来很糟糕。文字非常难以阅读(灰色灰色),箭头看起来很有趣:
如果我使用灯光主题,它们看起来很好。如果我查看android API示例,他们的微调器在默认的黑暗主题中看起来很好:
为什么我的所有旋转器都难看且不可读?我做错了什么?
最简单的代码将以这种方式显示:
final Spinner mySpinner = (Spinner) findViewById(R.id.mySpinner);
List<String> list = new ArrayList<String>();
list.add("foo");
list.add("bar");
mySpinner.setAdapter(new ArrayAdapter<String>(MyActivity.this, R.layout.list_item, list));
和布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Spinner
android:id="@+id/mySpinner"
android:layout_height="wrap_content"
android:layout_width="match_parent"></Spinner>
</LinearLayout>
答案 0 :(得分:3)
我会将spinner上的layout_height设置为wrap_content而不是match_parent。我没有看到任何与设置其他选项相关的代码,如适配器等,所以我猜有一些代码丢失了。我想知道旋转器是否被禁用以及为什么它会像那样变灰。
啊,可能是你的背景通过控制显示。尝试更改LinearLayout上的背景颜色,看看它是否正在闪烁。
答案 1 :(得分:2)
mySpinner.setAdapter(new ArrayAdapter<String>(
MyActivity.this,
android.R.layout.simple_spinner_item, list));
答案 2 :(得分:1)
http://polyclefsoftware.blogspot.com/2009/06/how-to-change-your-spinner-typeface.html
尝试阅读此页面。它讨论了如何自定义Spinner中的文本。
答案 3 :(得分:1)
对于不透明的黑色,您需要将微调器的TextView TextColor属性设置为0xFF000000。
在您的情况下,您可以扩展ArrayAdapter类,以便getView返回具有0xFF000000 TextColor属性的视图。
答案 4 :(得分:1)
我遇到了类似的问题,并意识到错误是在创建适配器时选择的“上下文”。我使用了“getApplicationContext()”,这导致了灰色图像。一旦我将其更改为活动上下文“MainActivity.this”,问题就解决了。感谢nz_karl指出来。