Android Редактировать выравнивание текста - PullRequest
20 голосов
/ 21 февраля 2012

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

У меня есть несколько текстовых элементов, которые выровнены по центру на дисплее.Когда я нажимаю на него, он преобразуется в 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 в моих параметрах макета для верхнего левого угла текста редактирования.

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

Ответы [ 2 ]

38 голосов
/ 29 февраля 2012

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

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, который выравнивает введенный текст влево или вправо.

14 голосов
/ 01 июня 2016

Это проверенное простое решение. Просто добавьте 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" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...