android如何包装微调器下拉文本(android 4)

时间:2012-11-14 17:19:04

标签: android android-layout android-spinner

我有一个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中,下拉视图中的文本仍然不会换行,

enter image description here

虽然从图像中看不清楚,但是微调器视图中的文本确实正确包装。我无法确定,但似乎下拉视图周围的容器不受屏幕限制,并向右扩展屏幕。这会阻止文本包装,因为就TextView而言,有足够的空间。

这是层次结构查看器中的微调框的弹出视图,

enter image description here

任何想法? 感谢。

3 个答案:

答案 0 :(得分:1)

我已经通过自定义布局解决了这个问题,我在LinearLayout中有TextView。 TextView和LinearLayout都具有固定宽度200dp。然后它在Android 2.3和4.0上正确地包装文本。

答案 1 :(得分:0)

CheckedTextView扩展TextView,其中包含inputType, maxLines, minLines个属性。 尝试将android:inputType="textMultiline"属性应用于CheckedTextView,这应该会有所帮助。

答案 2 :(得分:0)

创建自定义布局,首先是Goto res文件夹 - >创建新的XML布局文件 例如:simple_spinner_layout.xml

链接:http://justpaste.it/edit/2866098/aab2f5f3

它为我工作。 如果你满意的话,Plz投票支持这个答案。