2011-07-11 94 views
2

我使用默認主題(黑暗)和2.2/API級別8目標。當我將一個基本的微調器添加到我的佈局時,它們看起來很可怕。文字是非常難以閱讀(灰色的灰色)和箭頭看起來很滑稽:爲什麼我的android spinners看起來很可怕?

My Spinners

如果我用的是光的主題,就已經很好了。如果我看的Android API的例子他們的紡紗看起來很好默認黑暗的主題:

Normal Spinners

爲什麼我所有的紡紗廠醜陋和不可讀?我究竟做錯了什麼?

最簡單的代碼會顯示這樣:

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

包括一些代碼? – IamAlexAlright

+0

您使用的是什麼項目佈局? – adamp

+0

不知道我明白'item layout'是什麼意思? –

回答

3

我會將微調器上的layout_height設置爲wrap_content而不是match_parent。我沒有看到任何與設置適配器等其他選項有關的代碼,所以我猜想有一些代碼丟失了。我想知道微調器是否被禁用,爲什麼它會變成灰色。

啊,它可能是你的背景是通過控制顯示。嘗試更改LinearLayout上的背景顏色,看看它是否閃爍。

+0

layout_height在他的問題中設置爲wrap_content。我第一次閱讀它時把我扔掉了,但是佈局和微調之間的屬性順序是相反的。 – Farray

+0

無論我如何調整它的大小(layout_height)。它沒有被禁用,因爲它顯示彈出窗口並進行選擇。當我將我的清單中的主題設置爲Theme.Light時,它看起來很好。只有在使用默認主題時纔會如此。你可以看到向下的箭頭圖形看起來很奇怪 - 不像它應該是三角形。 –

+0

你是對的。我希望這是一個容易的。但我可以說Spinner的高度與文本字段的大小相同,並且它看起來像是放大了它想要的那樣。 – chubbsondubs

1

您需要將微調框的TextView TextColor屬性設置爲0xFF000000以獲得不透明的黑色。

對於您的情況,您可以擴展ArrayAdapter類,以便getView返回帶有0xFF000000 TextColor屬性的視圖。

2
mySpinner.setAdapter(new ArrayAdapter<String>(
     MyActivity.this, 
     android.R.layout.simple_spinner_item, list)); 
1

我遇到了類似的問題,並意識到錯誤是創建適配器時選擇的「上下文」。我曾經使用過「getApplicationContext()」,這導致了灰色圖像。一旦我將其更改爲活動上下文「MainActivity.this」,問題就解決了。感謝nz_karl指出。

相關問題