RTL android:TextInputLayout中的提示

时间:2019-02-11 09:23:56

标签: android right-to-left textinputlayout

我有这个XML布局:

 <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layoutDirection="locale" 
        android:textDirection="rtl"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".app.storey.view.StoreyInsertFragment">

    <com.google.android.material.textfield.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="somthing"
            app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp"
            android:layout_marginTop="8dp"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_marginStart="8dp"
            app:layout_constraintHorizontal_bias="0.0" 
            app:layout_constraintTop_toTopOf="parent">

        <com.google.android.material.textfield.TextInputEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

    </com.google.android.material.textfield.TextInputLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

我想在右侧显示hint文本,但在使用layoutDirection之后,textAlignment仍然显示在左侧,我该怎么做?

我看到this link,但不能解决我的问题。

3 个答案:

答案 0 :(得分:0)

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/text_input_user_name"
        style="@style/LoginInputLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginStart="@dimen/margin_editText_end_start"
        android:layout_marginTop="@dimen/margin_end_edit_text"
        android:layout_marginEnd="@dimen/margin_editText_end_start"
        android:layout_marginBottom="@dimen/margin_end_edit_text"

        app:hintAnimationEnabled="true"
        app:hintEnabled="true"
        >

        <androidx.appcompat.widget.AppCompatEditText
            android:id="@+id/edt_user_name"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center|start"
            android:gravity="center|start"
            android:textAlignment="center"
            android:hint="@string/user_name"
            android:inputType="textMultiLine"
            android:maxLength="8"
            android:padding="20dp"
            android:textColor="@color/ches_white"
            android:textColorHint="@color/ches_white"
            android:textSize="@dimen/text_size_login"/>

答案 1 :(得分:0)

<android.support.design.widget.TextInputLayout
                    android:id="@+id/til_name"
                    style="@style/TextInputLabel2"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/dimen_20dp"                       
                    android:textColorHint="@color/gray_10"
                    app:hintEnabled="true"
                    app:hintTextAppearance="@style/CustomTextAppearance2">

                    <android.support.v7.widget.AppCompatEditText
                        android:id="@+id/et_name"
                        style="@style/EditTextStyleWrap"
                        android:background="@android:color/transparent"
                        android:backgroundTint="@color/hint_line"
                        android:digits="@string/accepted_type"
                        android:gravity="end"
                        android:inputType="textPersonName"
                        android:letterSpacing="0.06"
                        android:maxLength="50"
                        android:nextFocusLeft="@+id/et_name"
                        android:nextFocusUp="@id/et_name"
                        android:textScaleX="1"
                        android:hint="name"
                        android:imeOptions="actionNext"
                        app:et_font="@{@string/font_sans_regular}"
                        tools:targetApi="lollipop" />
                </android.support.design.widget.TextInputLayout>

答案 2 :(得分:0)

如果您使用的是api> 17,请尝试将以下属性设置为EditText

android:textDirection="anyRtl"
android:layoutDirection="rtl"

此外,您需要将提示设置为EditText而不是TextInputLayout,并将重力设置为right,如其他答案中所述。