Подтвердить что ты не робот

Как центрировать текст подсказки в EditText в Android?

Мне нужно центрировать текст подсказки в EditText на Android. Как это сделать?

4b9b3361

Ответ 1

Чтобы центрировать текст подсказки для работы с EditText, вы должны убедиться, что андроид: ellipsize = "start". Я не знаю, почему это заставляет работать, но это так.

Пример, извлеченный из личного кода:

<EditText
    android:id="@+id/player2Name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:ellipsize="start"
    android:gravity="center_horizontal"
    android:hint="@string/player2_name"
    android:inputType="textCapWords|textPersonName"
    android:singleLine="true" />

Ответ 2

Фактически android:gravity="center_horizontal" действует "центр". Вы можете использовать

андроида: гравитация = "старт"

чтобы поместить текст подсказки в начало представления EditText и т.д.

Ответ 3

Используйте этот атрибут xml:

андроида: гравитация = "центр"

Ответ 4

Использовать атрибут

android:gravity="center"

Ответ 5

Я использовал этот код при любых обстоятельствах, и он отлично работает, не используя android: ellipsize = "start" , чтобы сделать подсказку в центре.

  <EditText
    android:id="@+id/player2Name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:hint="robi"
    android:inputType="text" />

Ответ 6

К сожалению, ни один из ответов не помог мне согласовать намек, написанный на языке LTR, в то время как ориентация макета была RTL. Мне понадобился такой макет в виде приложения для перевода, чтобы сделать оверлейные значки не мешающими RTL-тексту. Но этот трюк не работал с подсказками, пока еще не было текста (значки появились над подсказкой), и я пришел к следующему java-решению проблемы компоновки:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
. . .
        if (isRightToLeft()){
            EditText guess = (EditText) rootView.findViewById(android.R.id.text1);
            CharSequence hint = "\u200F" + guess.getHint();
            guess.setHint(hint);
        }
. . .
}

Уловка была в виде метки справа налево для добавления строки слева направо. И, похоже, это работает, но кто-нибудь знает более элегантное решение?

Ответ 7

Я думаю, что ответ должен быть:

android:textAlignment="center"

Ответ 8

textAlignment работал у меня.

textAlignment="center"

Ответ 9

Это сработало для меня:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/nombreslayoutinput">
    <EditText
        android:id="@+id/nombreslayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/nombres"
        android:layout_centerInParent="true"
        android:gravity="center|center_vertical"
        android:ellipsize="start"
        android:inputType="textCapWords|textPersonName"

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