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
に関する限り、十分なスペースがあるため、テキストが折り返されるのを防ぐことができます。
これは、階層ビューアーでのスピナーのポップアップ ビューです。
何か案は?