2016-02-13 10 views
5

Ich habe ein Problem mit Android-Eingabe-Cursor in RTL-Sprachen. Wenn ich im RTL-Support-Layout bin, habe ich zwei Eingabe-Cursor und es ist wirklich lustig. Hat es echte Lösung, um das los zu werden?Android Cursor in RTL-Sprachen

Ich benutze diesen Code auf meinem Android UI RTL zu machen:

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

Und das ist mein xml für Textansicht:

<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

Ich kann sein, weil Sie Edittext Schwerkraft in die Mitte gesetzt haben und der Cursor verwirrt wurde. Dies sollte nicht passieren, aber versuchen Sie es mit der richtigen Schwerkraft, dann kann das Problem nicht kommen. besser geben Sie Schwerkraft Wert Start –

+0

@CreativeAndroid Ich habe alles, was Sie gesagt haben und immer noch das gleiche Problem. –

+0

poste deinen Edittext xml –

Antwort

1

ich das Problem lösen. Einfach die Textsprache von links nach rechts ändern und das Problem ist gelöst.

<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"/> 

Fügen Sie die obige layoutDirection zu Ihrem Text bearbeiten und das Problem zu beheben.

0

ich gelöst es unter Verwendung ..

in Ihrem XML-Layout, für bearbeiten Textfeld hinzufügen, um diese ->

android:textDirection="anyRtl" 

Hier "editText" ist die Sicht auf Textfeld bearbeiten. d. h.

Dann fügen Sie programmatisch Text-Watcher für diesen Text hinzu.

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) { 

       } 
      }); 
     } 

Das funktionierte für mich!