问题描述
|
在Android中,我使用的是重力设置为居中的单行edittext。在模拟器中,这非常有用,提示和闪烁的光标都会显示出来。在设备(Xperia X10)上进行测试时,提示文字和闪烁的光标均不会显示。仅当我在编辑文本中输入一些文本时,闪烁的光标才会显示。
这是我的edittext,任何人都可以查看是否缺少某些内容吗?
<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):
解决方法
我终于找到了解决方案以使其正常运行。此EditText对我有用:(在Sony Ericsson 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>
,希望还不晚。我遇到了这个问题,我不知道每个设备是否都一样,但是默认情况下它看起来像“ 2”有底部填充。
尽管将重力设置为CENTER
,我的EditText文本值始终总是略高于中心,因此我另外设置了:
myEditText.setPadding(0,0);
这已经为我解决了,现在我的EditText居中完美:D
,我认为,您应该将EditText的parentLayout的重力设置为居中
编辑:
<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>
,我尝试了引力的组合:
android:gravity=\"top|center_horizontal\"
我之前的尝试是将EditText嵌套在RelativeLayout内,并将其设置为居中,但看起来效果并不理想,这种方式对我来说效果最好。
,在XML文件中,添加重力CENTER_HORIZONTAL以将提示设置为
center.CURSORVISIBLE = false,因此第一次单击时光标不可见
时间
在java中使用addTextChangedListener,当用户在该时间添加文本时
改变重力向左,也可见光标。
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 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);
}
}
});
,不用在样式标签中添加重力,而是在布局文件中添加重力