Пользовательская позиция подсказки в поле "Редактировать текст".

Мне было интересно, есть ли какой-нибудь способ, чтобы я мог получить подсказку в нижней части окна "Редактировать текст", а затем пользователь начал вводить текст в верхней части окна.

В качестве бонусного вопроса, есть ли способ сделать подсказку НЕ исчезнуть после того, как пользователь начнет вводить текст.

Ответы

Ответ 1

Вы можете установить положение текста, используя атрибут "тяжести" (как указано в http://developer.android.com/reference/android/widget/TextView.html#setGravity(int)). Таким образом, чтобы текст был внизу, вы бы имели;

android:gravity="bottom"

И ответить на ваш вопрос о бонусе; Нет, вы не можете отобразить подсказку, когда текст вводится в текстовое представление редактирования. Отображение подсказки только в том случае, когда поле пусто, - это определенное поведение, указанное в http://developer.android.com/reference/android/widget/TextView.html#setHint(int)

(и да, я знаю, что ссылки предназначены для TextView, но EditText выводит все свои функции "позиционирования текста и подсказки" из TextView).

Ответ 2

Проблема с использованием android: gravity and android: подсказка заключается в том, что они взаимосвязаны относительно позиции курсора. Когда вы устанавливаете подсказку с использованием силы тяжести и начинаете вводить текст, она вводится в том же положении, что и ваш намек, который является проблемой, если вы хотите, чтобы он начинался традиционно в верхнем левом углу.

Ответ 3

На самом деле есть способ предотвратить намек от скрытия, и это круто: -)

Это дает вам плавающий ярлык с гладкой анимацией очень легко и от самого Android. Нет дополнительных библиотек и т.д.

Попробуйте следующее:

<android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Touch me and I'll fly!"/>
</android.support.design.widget.TextInputLayout>

Вы можете изменить поведение, используя другие теги xml, такие как android:gravity="start|center|end" и другие.

В качестве бонуса вы можете использовать сообщения об ошибках:-) Здесь ссылка на этот вопрос: fooobar.com/info/76623/...

И жаль, что мне не хватает репутаций для отправки изображений, поэтому помогите себе:

http://i0.wp.com/androidlift.info/wp-content/uploads/2015/09/Screenshot_2015-09-28-17-03-561.png

Наслаждайтесь: -)