2012-04-17 38 views
1

私はAndroidアプリを書いています。私はいくつかのスピナーを持っています。それぞれはスピナーの下部と左右の余分な線を示しています。画像をご覧ください。誰がなぜこれが起こっているのか、それを修正する方法を知っていますか?Android Spinnerの余分なライン

enter image description here

ここでスピナーを定義するXMLファイル内のエントリです:

<Spinner android:id="@+id/formatSpinner" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:drawSelectorOnTop="true" 
     android:prompt="@string/format_prompt"/> 

そして、ここではそれを初期化するコードは次のとおりです。

 cur = mDbHelper.fetchAllFormats(); 
     adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cur, 
       new String[]{MoviesDbAdapter.KEY_NAME}, new int[]{android.R.id.text1}); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     formatSpinner.setAdapter(adapter); 

ありがとう!

Update1:​​実験をしましたが、スピナーに先行するTextViewがXMLファイルから削除されると、スピナーが正しく表示されます。なぜ私はこれがどんなアイデアになるのか分かりません。

Update2:また、layout_marginTopをスピナーに追加すると、問題は解決します。これは本当に奇妙です。

+0

をお試しください:drawSelectorOnTop –

+0

わからない、私がそれを持っているかどうかを任意の違いを確認していないようです。 – wholladay

答えて

0

これは明らかにアンドロイドのバグです。私は他の人が同じ問題に遭遇するのを見ました。誰も良い答えを持っていません。これは、私が最初に思っていたように、実際にはスピナーコントロールに描かれた線ではなく、背景色が見えるようにするコントロールの図の「ギャップ」です。

この問題を解決するには、スピナーの描画位置を変更する必要があります。私は、最初のスピナーの前に奇数のマージンを追加してこれを行いました。私の場合、私は5dpを使いました。私は次の2つのスピナーに4dpを使用し、すべてが奇数ピクセルで始まるようにしました。

これは一見醜いですが、修正プログラムが作成されるまで、これは私が見つけた最も良い解決策です。

1
<Spinner android:id="@+id/formatSpinner" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:prompt="@string/format_prompt"/> 

これを試してみてください。..

+0

drawSelectorOnTop属性を削除しても差はありません。 – wholladay

0

アンドロイドである何この

<Spinner 
    ...    
    style="@style/Widget.AppCompat.Spinner.Underlined" 
    ... />