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 TextView,它有inputType, maxLines, minLines属性。尝试将android:inputType="textMultiline"属性应用于您的CheckedTextView,这应该会有所帮助。

于 2012-11-14T21:29:41.710 回答