在Android中,我使用单行edittext,重力设置为居中。在模拟器中,这个功能很好,提示和闪烁的光标都显示出来。在设备上测试(Xperia X10)时,提示文本和闪烁光标都不会显示。闪烁的光标仅显示我是否在编辑文本中输入了一些文本。
这是我的编辑文本,任何人都可以看到是否缺少某些内容?
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ellipsize="end"
android:maxLines="1"
android:gravity="center"
android:layout_gravity="center"
android:hint="Some hint text"
></EditText>
</LinearLayout>
我想要的是什么:
上面的代码(没有光标的空edittext):
答案 0 :(得分:44)
我终于找到了让它运转的解决方案。这个EditText适合我:(在索尼爱立信X10和HTC Wildfire上测试)
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:digits="0123456789.,"
android:ellipsize="start"
android:maxLines="1"
android:gravity="center"
android:hint="Some hint text"
></EditText>
答案 1 :(得分:4)
我认为,您应该将EditText的parentLayout 的重力设置为 center
编辑:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:id="@+id/linearLayout">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ellipsize="end"
android:maxLines="1"
android:hint="Some hint text"/>
</LinearLayout>
答案 2 :(得分:4)
希望现在还为时不晚。我遇到了这个问题而且我不知道每个设备是否相同,但默认情况下显示CENTER
底部填充。
尽管将重力设置为myEditText.setPadding(0, 0, 0, 0);
,我的EditText文本值似乎总是略高于中心,所以我另外设置:
{{1}}
这为我修复了它,现在我的EditText完全居中:D
答案 3 :(得分:0)
我尝试了一系列重力:
android:gravity="top|center_horizontal"
我之前的尝试是将EditText嵌套在RelativeLayout中并将其设置为居中但看起来不那么好,这种方式最适合我。
答案 4 :(得分:0)
XML:
<EditText android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="EMAIL"
android:textStyle="bold"
android:gravity="center_horizontal"
android:inputType="textEmailAddress"
android:layout_margin="10dp"
android:cursorVisible="false" />
JAVA:
email.addTextChangedListener(new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() > 0) {
// position the text type in the left top corner
email.setGravity(Gravity.LEFT | Gravity.TOP);
email.setCursorVisible(true);
}
else
{
// no text entered. Center the hint text.
email.setGravity(Gravity.CENTER);
email.setCursorVisible(false);
}
}
});
答案 5 :(得分:-1)
而不是在样式标记中添加重力,而不是在你的布局文件中添加它将起作用