Вы можете сделать ввод EditText справа налево? - PullRequest
11 голосов
/ 22 февраля 2011

Мне было интересно, если вы можете управлять вводом в EditText для перемещения справа налево? EditText также должен поддерживать вставку / удаление и т. Д. Справа налево. Есть ли способ сделать это?

Ответы [ 9 ]

19 голосов
/ 03 марта 2016

Добавьте это к своему тексту редактирования

        android:textDirection="rtl"
13 голосов
/ 23 февраля 2011

Похоже, вам просто нужно установить гравитацию вправо.

7 голосов
/ 15 июля 2017

Просто используйте это:

android:layout_gravity="start"
android:textAlignment="viewStart"
2 голосов
/ 01 октября 2013

попробуйте этот код

//initialize
EditText userName = (EditText)findViewById(R.id.userName);

//set gravity for userName 
userName.setGravity(Gravity.RIGHT);
0 голосов
/ 18 июля 2019

попробуйте следующий код

AutoCompleteTextView autoCompleteTextView = findViewById(R.id.main_searchBar);
autoCompleteTextView.setGravity(Gravity.RIGHT);
0 голосов
/ 10 июля 2019

Правильный способ заключается в использовании:

android:textAlignment="viewStart"

Как это будет автоматически работать для LTR и RTL.

0 голосов
/ 03 июня 2019

Вы можете добавить к своему тексту редактирования в xml:

в случае слева направо:

   android:textDirection="firstStrongLtr"                    

в случае справа налево:

   android:textDirection="firstStrongRtl"                    
0 голосов
/ 28 января 2014

Попробуйте это ....

  1. Инициализация полей имени пользователя и пароля.

    EditText username = (EditText) findViewById(R.id.username);
    
    EditText password = (EditText) findViewById(R.id.password);
    
  2. Получить текущую локаль для языков RTL, таких как арабский и т. Д.,

    String getCurrentLocale = Locale.getDefault().getDisplayLanguage();
    
  3. Затем мы должны проверить, какой язык выбран для RTL или LTR.

    if(getCurrentLocale.equalEgnoreCase("English")){          //LTR languages
    
          username.setGravity(Gravity.Left);
    
          password.setGravity(Gravity.Left);
    
     }else{                                                     //RTL languages
    
         username.setGravity(Gravity.Right);
    
         password.setGravity(Gravity.Right);
    
     }
    
  4. Удачного кодирования ...!

0 голосов
/ 02 декабря 2013

Существует ручной способ сделать это, используя следующий код:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_MENU) {
        // Each time click Menu button on the bar
        // Set the cursor to the first index
        mEtEmail.setSelection(0); // YOUR EDIT TEXT
    } 

    return super.onKeyUp(keyCode, event);
}

p / s: Или вы можете изменить

KeyEvent.KEYCODE_MENU

следуйте вашим желаниям,

Или вы можете попробовать с Bidi .

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...