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

Как поместить курсор вправо в EditText

В моем приложении используется язык RTL (справа налево).

Когда поле EditText получает фокус, курсор появляется слева, и только когда пользователь начинает печатать, курсор (и текст RTL) перемещается вправо. Когда пользователь нажимает "enter", чтобы начать новую строку, курсор снова перемещается влево.

Когда я использую android:gravity="right", курсор в порядке (справа), но по мере того, как пользователь начинает вводить текст, он всегда перемещается на другую сторону (текст RTL перемещается влево).

Любые идеи, как я могу выровнять текст вправо и сохранить направление текста?

4b9b3361

Ответ 1

Его работы для меня

      <EditText
            android:id="@+id/editText1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:ellipsize="end"
            android:gravity="right" />

ellipsize важно

Он решает вашу проблему

Ответ 2

Возможно, вам захочется ознакомиться с поддержкой родной RTL, которая была представлена ​​в Android 4.2 Jelly Bean.

http://developer.android.com/about/versions/jelly-bean.html

Android 4.2 представляет полную встроенную поддержку RTL (справа налево) макетов, включая зеркалирование макетов. Благодаря встроенной поддержке RTL вы можете предоставить всем своим пользователям такой же отличный опыт работы, независимо от того, использует ли их язык script, который читает справа налево или тот, который читает слева направо.

Ответ 3

У меня та же проблема, и я могу исправить это, установив android:textDirection в свой EditText. например

android:textDirection="inherit"

вы можете изменить значение textDirection в соответствии с вашим требованием. Я воспринял это как наследовать, потому что пользователь может изменить язык в приложении. Поэтому, если пользователь выбрал язык, такой как английский или хинди, он начнет печатать с направо влево-вправо, но если пользователь выбрал язык, подобный урду, тогда он начнет печатать левое направление.

Для этого ваше приложение минимальный уровень API должно быть 17.

Ответ 4

ИМХО, android:gravity = right только делает текст сглаженным справа. Но вы не можете этого сделать. Вы можете вызвать событие ontouch в textbox и добавить новый символ справа от текущего текста и отобразить его снова.....

Ответ 5

Начиная с уровня API >= 17

Мы можем использовать android: layoutDirection в текстовом редакторе. Также должен работать и android:gravity="end".