Выравнивание текста в Android Edit

Я делаю небольшое приложение для планшета, что-то вроде вывески.

У меня есть несколько текстовых элементов, которые выровнены по центру знака дисплея. Когда я нажимаю на него, он преобразуется в editText. Я хочу редактировать текст таким образом, чтобы текст в нем был выровнен по центру и обернут содержимое. Но когда я что-то ввожу, editText расширяется в обе стороны, сохраняя текст выровненным по центру. Я хочу сделать то же самое с текстовыми элементами, выровненными по правому краю (разница только в том, что текст редактирования будет расширяться только влево).

Когда я пытаюсь сделать это прямо сейчас, он расширяется влево. Это мой код для размещения элемента редактирования текста.

tempView=new EditText(this);
((EditText) tempView).setTextSize(shrinkedFontSize);
((EditText) tempView).setTypeface(tf);
((EditText) tempView).setText(tempInput.getText());     
((EditText) tempView).setGravity(Gravity.CENTER);
layout.addView(tempView, tempParams);

Я устанавливаю ширину макета как Wrap_content в параметрах макета. Я также указал x и y в параметрах макета для верхнего левого угла редактируемого текста.

Есть ли способ добиться этого?


person Dhaval Patel    schedule 21.02.2012    source источник


Ответы (2)


Это должно решить вашу проблему:

EditText t = (EditText) findViewById(R.id.text);
t.setGravity(Gravity.CENTER);

... в XML:

<EditText
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="text" />

Это делает ввод текста EditText inputField центрированным по горизонтали.

Вы можете изменить layout_width с fill_parent на 150 dp или любой другой размер, но не wrap_content. Текст будет центрирован по горизонтали.

Установите t.setGravity(Gravity.RIGHT); или LEFT, чтобы выравнивать введенный текст по левому или правому краю.

person Asad Rao    schedule 29.02.2012

Это проверенное более простое решение. Просто добавьте android:gravity="center" в XML-файл макета, чтобы выровнять текст по центру EditText. Нет необходимости изменять код Java.

<EditText
    android:id="@+id/LastName"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/back"
    android:inputType="numberDecimal"
    android:gravity="center" />
person Ajay B    schedule 01.06.2016
comment
оба ответа правильные. однако оператор пытался сделать это в java, поэтому другой ответ более точен. - person Lukas Owen; 28.03.2019