EditText:中心提示但从顶部开始输入文本

tee*_*kib 14 android

嗨我有一个带提示的编辑文本,我将提示作为中间使用android:gravity:"center".当我从edittext中开始输入时,键入从中间开始,如何使键入从leftcorner开始,同时仍然提示中心

<EditText
        android:id="@+id/edittext"
        android:layout_width="230dp"
        android:layout_height="110dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/imageView1"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="33dp"
        android:layout_toLeftOf="@+id/relativeLayout1"
        android:background="@drawable/roundcorners"
        android:ems="10"
        android:gravity="center_horizontal"
        android:hint="@string/fbhint"
        android:lines="6"
        android:paddingRight="5dp"
        android:textSize="14sp"      
        android:windowSoftInputMode="stateHidden" />
Run Code Online (Sandbox Code Playgroud)

use*_*372 24

我认为这不是"开箱即用"的可能,但您可以通过编程方式进行:

yourEditText.addTextChangedListener(new TextWatcher() {
     public void afterTextChanged(Editable s) {}
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

     public void onTextChanged(CharSequence s, int start, int before, int count) {
          if (s.length() > 0){
               // position the text type in the left top corner
               yourEditText.setGravity(Gravity.LEFT | Gravity.TOP);  
          }else{
               // no text entered. Center the hint text.
               yourEditText.setGravity(Gravity.CENTER);  
          }
     }
}
Run Code Online (Sandbox Code Playgroud)


use*_*305 16

默认情况下,android EditText具有中心重力.做吧android:gravity="top|left"

此外,没有任何特殊属性可以在中心和文本中进行提示.两者都遵循相同的引力属性.

Android提示只是用于标签的东西,用户必须开始输入字符.

  • 但我希望提示留在中心...使用android:gravity ="top | left"提示也移动到左上角. (5认同)