10

最近、ホロ テーマを Android アプリに実装しました。これを行った後、ドロップダウン項目が複数行の長さであるスピナーは、テキストを複数行に折り返すことはありません。各ドロップダウン項目はすべて 1 行にまとめられ、特定の長さに切り捨てられます。

スピナーのドロップダウン リソースの xml は次のとおりです。

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="none" />

これは、ICS およびホロ テーマの前の古いバージョンの Android で動作します。

他の誰かがこの問題に遭遇しましたか?

4

1 に答える 1

0

で述べたように: Spinner はテキストをラップしません -- これは Android のバグですか?

Androidにバグがあると思います。これを試すことができます。テキストからスペースを削除してから、正常に機能するように表示します。テキストビューの長さが文字列の長さよりも小さい場合、スペースの後のすべての文字が無視されます。回避策として、これを試すことができます:

サンプル コードを含む res/layout フォルダーに multiline_spinner_dropdown_item.xml という名前のファイルを追加します。

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/sample_text"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="false"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee" />

スピナーを作成するときは、このレイアウトから作成します。

何かのようなもの :

ArrayAdapter.createFromResource(this, items, R.layout.multiline_spinner_dropdown_item);

基本的には、android.R.layout.simple_spinner_dropdown_item レイアウトをプロジェクトにコピーし、CheckedTextView で singleLine 属性を false に設定してレイアウトを変更します。

于 2013-02-07T13:31:55.010 に答える