在中心设置edittext的光标位置......!

时间:2015-02-04 13:26:39

标签: android xml

我知道这个问题很多次。但是没有一个例子对我有用 我想通过XML文件在中心设置光标位置 我怎样才能做到这一点??
我当前的光标位置如下图所示。

我的XML文件代码如下

.XML文件

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/sigupDisplayName"
            style="@style/editTextStyle"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/edittext_style"

            android:ems="10"
            android:gravity="center"
            android:hint="@string/display_name" >

            <requestFocus />
        </EditText>
    </LinearLayout>

5 个答案:

答案 0 :(得分:3)

我现在发现了什么是主要问题...
问题出在API级别..
我更改了程序的API级别。
在API 15下面,光标设置在我的应用程序的中心..
从API 16开始,光标位置设置为提示文本的开始... !!!

答案 1 :(得分:1)

尝试下面的edittext而不是你的。这对你有用

   <EditText android:id="@+id/sigupDisplayName"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:ems="10"
    android:gravity="center"
    android:hint="@string/display_name" >

编辑删除提示,您将在editText的中间看到它。

答案 2 :(得分:0)

试试这个:

your_edit_text.setText("bla-bla-bla");
int position = your_edit_text.length();
Editable text = your_edit_text.getText();
Selection.setSelection(text, position / 2);

或者这个:

your_edit_text.setSelection(position / 2)

如果鞋面不起作用,请尝试这个:

your_edit_text.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            your_edit_text.setSelection(your_edit_text.getText().length() / 2);
            return false;
        }
    });

或者这个:

yourEditText.requestFocus(Your_Text.length()/ 2);

答案 3 :(得分:0)

试试这个

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/edittext_style"
    android:gravity="center"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/sigupDisplayName"
        style="@style/editTextStyle"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:gravity="center"
        android:hint="@string/display_name" >

    </EditText>
</LinearLayout>

答案 4 :(得分:0)

使用TextInputLayout可以正常使用提示。

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText android:id="@+id/email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:hint="Email"
        android:gravity="center"
        />

</android.support.design.widget.TextInputLayout>