2016-02-13 14 views
5

Ho problemi con il cursore di immissione Android nelle lingue RTL. Quando sono nel layout di supporto RTL, ho due cursori di input ed è davvero divertente. Ha una soluzione reale, per sbarazzarsi di questo?Cursore Android in lingue RTL

Io uso questo codice per fare il mio Android UI RTL:

getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); 

E questa mia XML per la visualizzazione del testo:

<android.support.design.widget.TextInputLayout 
     android:id="@+id/input_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="numberDecimal" 
      android:id="@+id/myID" 
      android:maxLines="1" 
      android:focusableInTouchMode="true" 
      android:layout_weight="0.25" 
      android:layout_gravity="center_horizontal" 
      android:hint="phone Number" 
      android:maxLength="20" 
      android:gravity="center" /> 
    </android.support.design.widget.TextInputLayout> 

enter image description here

+0

Potrei esserlo perché hai impostato la gravità per il centro e il cursore si è confuso. Questo non dovrebbe accadere, ma prova a sinistra la gravità, quindi potrebbe essere un problema non venire. meglio tu dai valore di gravità iniziale –

+0

@CreativeAndroid Ho fatto tutto ciò che hai detto e ancora lo stesso problema. –

+0

post your edittext xml –

risposta

1

mi risolve il problema. Basta modificare la lingua del testo da sinistra a destra e il problema è risolto.

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="number" 
    android:ems="10" 
    android:id="@+id/PhoneNoET" 
    android:layout_marginTop="64dp" 
    android:layout_below="@+id/textView6" 
    android:layout_centerHorizontal="true" 
    android:textAlignment="center" 
    android:maxLength="11" 
    android:layoutDirection="ltr"/> 

Aggiungere il layout precedente alla Modifica del testo e risolvere il problema.

0

ho risolto utilizzando seguente ..

nel layout XML, per la modifica campo di testo aggiungere questo ->

android:textDirection="anyRtl" 

Qui, "EditText" è il vostro vista del campo di modificare il testo. cioè

EditText editText = (EditText) findViewById(R.id.edit_text); 

Quindi aggiungere a livello di testo watcher per quel testo di modifica.

editText.addTextChangedListener(new TextWatcher() { 
       @Override 
       public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

       } 

       @Override 
       public void onTextChanged(CharSequence s, int start, int before, int count) { 
        editText.setSelection(s.length()); // this line is very important for setting cursor position 
       } 

       @Override 
       public void afterTextChanged(Editable s) { 

       } 
      }); 
     } 

Questo ha funzionato per me!

Problemi correlati