EditText TextInputLayout提示文本对齐:是否可以对齐提示文本,如EditText视图的textAlignment属性

问题描述

我有一个固定高度的inputText字段(TextInputLayout的EditText)。 我想将提示文本对齐到视图的左上方。

问题:提示文本始终显示在center_verticle上,但我想在左上角显示它。

        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/aboutWrapper"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="About Sponsor">
            <EditText
                android:id="@+id/et_about_sponsor"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:minHeight="250dp"
                android:textAlignment="viewStart"
                android:layout_centerHorizontal="true"
                android:gravity="start|top"
                android:imeOptions="actionDone"
                android:inputType="textMultiLine|textCapSentences"
                android:textColor="@color/white"
                android:textColorHint="@color/white"
                android:textSize="@dimen/font_medium" /> 
         </com.google.android.material.textfield.TextInputLayout>

解决方法

根据此github issue,您需要将 android:minLines 以及 android:gravity="top" 设置为至少 2。

<com.google.android.material.textfield.TextInputLayout
 android:id="@+id/txtInput"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:hint="Hint">

 <com.google.android.material.textfield.TextInputEditText
     android:id="@+id/et_content"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:gravity="top"
     **android:minLines="2"**
      />
</com.google.android.material.textfield.TextInputLayout>
,

您可以使用:

        <com.google.android.material.textfield.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="About Sponsor">

            <com.google.android.material.textfield.TextInputEditText
                android:minHeight="250dp"
                android:textAlignment="viewStart"
                android:layout_centerHorizontal="true"
                android:gravity="start|top"
                android:imeOptions="actionDone"
                android:inputType="textMultiLine|textCapSentences"
                .../>
        </com.google.android.material.textfield.TextInputLayout>

enter image description here

,

尝试将style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"样式添加到TextInputLayout

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/aboutWrapper"
    android:layout_width="match_parent"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_height="wrap_content"
    android:hint="About Sponsor">
    <EditText
        android:id="@+id/et_about_sponsor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="250dp"
        android:textAlignment="viewStart"
        android:layout_centerHorizontal="true"
        android:gravity="start|top"
        android:imeOptions="actionDone"
        android:inputType="textMultiLine|textCapSentences"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textSize="@dimen/font_medium" />
</com.google.android.material.textfield.TextInputLayout>
,

您可以使用

<EditText
            android:id="@+id/editTextTextPersonName5"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:ems="10"
            android:hint="Message"
            android:gravity="left|top"
            android:inputType="textAutoComplete"
            android:textAlignment="textStart" />

此处gravity属性将帮助您将文本对齐到所需的任何位置。 您可以参考Here

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...