Android EditText / TextView高度调整大小问题

时间:2013-03-13 05:11:58

标签: android resize textview android-edittext

我在一些设备上遇到了EditText的问题。我在一个活动中有几个EditText。此外,我可以选择让用户调整字体大小。当用户选择大字体,然后返回到较小的字体时,EditText的小部件的高度不会缩小以容纳较小的字体(额外填充)。我只是在一些设备上观察到了这种行为;大部分工作都很好。有什么建议?我发现这个Resizing TextView does not shrink its height on Android 3.1,我认为可能与此有关,但添加建议的转义码似乎没有帮助。谢谢!

增加:

    <LinearLayout
        android:id="@+id/linearLayout_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center_horizontal"
        android:focusableInTouchMode="true"
        android:descendantFocusability="beforeDescendants"
        android:background="@drawable/yellow" >

        <EditText
            android:id="@+id/editText_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="0dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginTop="4dp"
            android:minWidth="@dimen/add_note_min_width"
            android:textSize="18dip"
            android:background="#fa0"
            android:ems="10"
            android:hint="@string/title"
            android:inputType="text"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/editText_body"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:layout_marginBottom="16dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginTop="0dp"
            android:gravity="top"
            android:minWidth="@dimen/add_note_min_width"
            android:minHeight="@dimen/add_note_min_height"
            android:textSize="18dip"
            android:background="#af0"
            android:ems="10"
            android:hint="@string/body"
            android:inputType="textMultiLine" />
    </LinearLayout>

以下是相关代码的xml。正如我上面所说,我已经尝试将\ u3000,\ u2060和\ u200b转义字符添加到文本的末尾(独立地),如提供的链接中所建议的那样。此外,我将底部的EditText设置为布局权重1,以尝试占用标题EditText下方的额外填充。我已经考虑过尝试手动测量并调整EditText的大小,但这看起来很糟糕,特别是因为这只会影响很少的设备。这似乎是Android的一个实际错误,但我无法确认或找到解决方法。

1 个答案:

答案 0 :(得分:0)

我终于解决了这个问题。正如我链接的其他帖子中所建议的,解决方法是在视图文本中附加“\ u3000”,“\ u2060”或“\ u200b”。这适用于TextViews,但在我的EditText使用提示的地方,特殊字符也必须附加到提示(我只是附加到文本)。希望这有助于其他人。