Android游标以RTL语言显示

时间:2016-02-13 09:01:29

标签: android layout cursor right-to-left

我在RTL语言中遇到了android输入游标的问题。当我在RTL支持布局时,我有两个输入光标,它真的很有趣。 是否有真正的解决办法,摆脱这个?

我使用此代码制作我的Android UI RTL:

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

这是我的文本视图xml:

<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

3 个答案:

答案 0 :(得分:2)

我在下面解决了它。

在xml布局中,对于编辑文本字段,请添加此项 - &gt;

android:textDirection="anyRtl"

在这里,&#34; editText&#34;是您编辑文本字段的视图。即,

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

然后以编程方式为该编辑文本添加文本观察器。

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

                }
            });
        }

这对我有用!

答案 1 :(得分:0)

我解决了这个问题。 只需将编辑文本语言从左到右,问题就解决了。

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

将上述layoutDirection添加到“编辑文本”并修复问题。

答案 2 :(得分:0)

保持@daily代替android:inputType="phone"解决了我的问题。

以下代码片段来自我的xml:

android:inputType="number"