Мне нужно центрировать текст подсказки в EditText
на Android. Как это сделать?
Как центрировать текст подсказки в EditText в Android?
Ответ 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>