Android:重磅中心上的Edittext在设备上不起作用

问题描述

| 在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);
                }
            }
        });
    ,不用在样式标签中添加重力,而是在布局文件中添加重力