2

Spinnerスピナー内のテキストと、スピナーが展開されたときの選択肢 (ドロップダウン ビュー) の両方が、ロケールによってはかなり長くなる場合があります。スピナー ビューとドロップ ダウン ビューの両方にカスタム ビューを設定して、テキスト行を折り返すことができるようにします。

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    style="?android:attr/spinnerDropDownItemStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="none"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:singleLine="false" />

コードでは、

    spinnerPermission = (Spinner) layout.findViewById(R.id.permission_spinner);
    ArrayAdapter<CharSequence> permissionAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.add_share_dialog_permissions,
        R.layout.multiline_spinner_dropdown_item);
    permissionAdapter.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
    spinnerPermission.setAdapter(permissionAdapter);

これは Android 2 では問題なく動作しますが、Android 4 では、ドロップダウン ビューのテキストはまだ折り返されません。

ここに画像の説明を入力

画像からは明確ではありませんが、スピナー ビューのテキストは正しく折り返されます。確かなことはわかりませんが、ドロップ ダウン ビューの周りのコンテナが画面に拘束されておらず、画面から右に広がっているようです。TextViewに関する限り、十分なスペースがあるため、テキストが折り返されるのを防ぐことができます。

これは、階層ビューアーでのスピナーのポップアップ ビューです。

ここに画像の説明を入力

何か案は?

4

3 に答える 3

1

LinearLayout 内に TextView があるカスタム レイアウトでこれを解決しました。TextView と LinearLayout はどちらも固定幅 200dp です。次に、Android 2.3 と 4.0 の両方でテキストを正しくラップします。

于 2013-01-05T17:05:43.823 に答える
0

カスタム レイアウトを作成します。最初に res フォルダーに移動します -> 新しい XML レイアウト ファイルを作成します。例: simple_spinner_layout.xml

リンク: http://justpaste.it/edit/2866098/aab2f5f3

私にとってはその仕事です。満足している場合は、この回答に投票してください。

于 2013-11-13T11:49:07.210 に答える
0

CheckedTextViewextends TextViewinputType, maxLines, minLines属性があります。android:inputType="textMultiline"に属性を適用してみてくださいCheckedTextView。これが役立つはずです。

于 2012-11-14T21:29:41.710 に答える