【发布时间】:2012-05-20 04:50:00
【问题描述】:
我有一个小的 EditText,我想在其中显示错误(使用 editText.setError())。在 Android API 10 中,消息显示在很多行中并且不可读。在 Android 15 中工作得比较好。我在问题的最后附上截图来说明问题。
如何以适当的模式显示错误消息?
我写了一个小例子来重现这个问题:
活动:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((EditText) findViewById(R.id.b)).setError("A error description and bla bla bla bla bla.");
}
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<EditText
android:id="@+id/a"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />
<EditText
android:id="@+id/b"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />
<EditText
android:id="@+id/c"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />
<EditText
android:id="@+id/d"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />
<EditText
android:id="@+id/e"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />
<EditText
android:id="@+id/f"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
采用 Android API 10 的设备:
采用 Android API 15 的平板电脑:
Related question. 但答案对我不起作用。
更新
除了 API 级别之外,我在两个 equals 模拟器上执行了相同的代码。结果可以在屏幕上看到。 API 15 仍然没有完全修复错误。文字清晰,但弹出的位置不正确。
【问题讨论】:
-
您是否尝试将
layout_width设置为wrap_content? -
我想到了一个想法 - 您正在使用两个具有不同屏幕尺寸的模拟设备......不是两个运行不同版本平台的匹配模拟设备。所以这可能是两个设备之间像素密度的影响。如果您的模拟器具有相同的屏幕尺寸和密度,是否会以相同的方式出现显示问题?
标签: android android-layout android-edittext