Пользовательская позиция подсказки в поле редактирования текста. - PullRequest
15 голосов
/ 05 июля 2010

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

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

Ответы [ 3 ]

24 голосов
/ 05 июля 2010

Вы можете установить положение текста с помощью атрибута "gravity" (как отмечено в 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).

7 голосов
/ 17 августа 2016

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

Это дает вам вид Floating Label с плавной анимацией очень легко, и это от самого 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" и другие.

В качестве бонуса вы можете использовать с ним сообщения об ошибках :-) Вот ссылка на этот вопрос: https://stackoverflow.com/a/30953551/6474744

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

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

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

3 голосов
/ 12 июля 2013

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

...