游标在android中的中心位置

时间:2012-10-22 10:44:57

标签: android android-edittext

您好我正在使用包含登录屏幕的Android应用程序。在我的登录屏幕中,我有用户名和密码编辑文本字段。在edittext中,我需要提示为“输入您的用户名”中心对齐,所以我将重力设置为edittext字段的“中心”,但现在问题是光标在中心位置也可见,我需要光标在左侧定位。我也尝试了以下编码。

edtUserName.setSelection(1);

This is my xml code:
 <EditText
                android:id="@+id/edt_login_username"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/bg_txt_field"
                android:ellipsize="start"
                android:focusableInTouchMode="true"
                android:hint="Enter Username"
                android:maxLines="1"
                android:singleLine="true"
                android:textStyle="italic"
                android:typeface="serif" android:gravity="center">
            </EditText>

Please help me to solve this problem. Thanks in advance.

4 个答案:

答案 0 :(得分:3)

你可以以编程方式实现它!

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) {
             // puts the caret after the text when unempty
             yourEditText.setGravity(Gravity.CENTER);
        } else {
             // puts the caret at the beginning of the `EditText` when empty
             yourEditText.setGravity(Gravity.START | Gravity.CENTER_VERTICAL); 
        }
    }
}

答案 1 :(得分:2)

你可以试试这个

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:textAlignment="center"
android:ellipsize="end"
android:gravity="center"/>

答案 2 :(得分:0)

我认为这会对你有帮助。

android:gravity设置其使用的View内容的重力。 android:layout_gravity在其父级中设置视图或布局的重力。 例如:Example

答案 3 :(得分:0)

改变引力:

 android:gravity="center_vertical"