如何使android edittext提示中心和左侧光标

ip6*_*696 12 android android-edittext

如何在EditText的中心设置提示文本并将光标设置在EditText的左侧部分?当我开始输入文本时,它从中心EditText开始?

在此输入图像描述

我现在有

在此输入图像描述

<LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:background="@drawable/line_white"
                android:layout_marginBottom="25dp"
                android:paddingBottom="16dp"
                android:gravity="center_horizontal">

                <EditText
                    android:id="@+id/loginEmailField"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:autoText="false"
                    android:ems="10"
                    android:hint="Choose an email adress"
                    android:inputType="textEmailAddress"
                    android:paddingLeft="2dp"
                    android:singleLine="false"
                    android:textColor="#ffffff"
                    android:textColorHint="#9377ab"
                    android:textSize="19sp"
                    android:textStyle="bold"
                    android:background="#00000000"
                    android:layout_marginRight="2dp"
                    android:gravity="center"/>
            </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

Wop*_*ops 5

那就是一个愚蠢的问题,我知道..解决此问题的最简单方法是(并保持居中文本)是使用以下简单技巧:

        editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {}
        @Override
        public void afterTextChanged(Editable s) {
            if (s != null && s.toString().length() > 0){
                editText.setGravity(Gravity.CENTER);
            }else{
                editText.setGravity(Gravity.START);
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)


Nar*_*ire 0

没有直接的方法,但您可以使用以下代码尝试一下

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="48dp">
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="48dp"
        android:layout_gravity="center"
        android:hint="You text here"/>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

为父框架布局提供下划线背景,并在单击时将焦点放在编辑文本上