我在几个设备上的EditText有问题。我在一个活动中有几个EditText。此外,我还为用户提供了调整字体大小的选项。当用户选择一个大字体,然后返回到一个较小的字体时,EditText小部件的高度不会缩小以适应较小的字体(额外的填充)。我只在一些设备上观察到这种行为;大多数工作都很好。任何建议吗?我发现这一点,调整TextView不会缩小其高度在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的一个真正的bug,但我无法确认这一点,也无法找到解决办法。
终于解决了这个问题。正如我链接的另一篇文章中所建议的那样,一个解决方法是将"u3000","u2060"或"u200b"附加到视图的文本中。这对textview很有效,但是当我的EditText使用提示时,特殊字符也必须追加到提示(我只是追加到文本)。