【发布时间】:2012-11-14 17:19:03
【问题描述】:
我有一个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 而言,有足够的空间。
这是层次结构查看器中微调器的弹出视图,
有什么想法吗?
【问题讨论】:
-
对不起,我不明白你的意思。这是一个建议吗?
-
尝试将
layout_width设置为显式值,而不是下拉视图的match_parent。 -
考虑到所有可能的屏幕尺寸和方向,我不确定这是一种合理的方法。
-
您可以尝试在层次结构视图中检查您打开的
Spinner,看看它是否能告诉您任何信息,例如确认您的“从屏幕向右扩展”理论(这听起来很合理)。我没有尝试在层次结构视图中查看打开的Spinner,所以虽然我希望它可以工作,但由于某种原因,这可能是不可能的。 -
不,德语总是那么长,就是打破盒子(设计)
标签: android android-layout android-spinner