Android Изменить выравнивание текста - программирование
Подтвердить что ты не робот

Android Изменить выравнивание текста

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

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

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

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 в моих параметрах макета для верхнего левого угла текста редактирования.

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

4b9b3361

Ответ 1

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

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

Ответ 2

Это проверенное более простое решение. Просто добавьте 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" />