【问题标题】:android how to wrap spinner drop down text (android 4)android如何包装微调器下拉文本(android 4)
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 是的,这行得通,但我不想固定宽度。如果我这样做,我必须针对各种不同的屏幕和方向考虑适当的宽度。
【解决方案2】:

CheckedTextView 扩展了TextView,它具有inputType, maxLines, minLines 属性。 尝试将android:inputType="textMultiline" 属性应用于您的CheckedTextView,这应该会有所帮助。

【讨论】:

  • 使微调器运行异常(无法选择下拉视图),并且仍然不换行。此外,lint 标记它说 inputType 只能用于可编辑的文本视图。
  • 另外,即使显式设置lines="2" 也无效。
  • 尝试添加android:scrollHorizo​​ntally="false"
【解决方案3】:

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

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

它对我有用。 如果您满意,请为这个答案投票。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多