无法以编程方式更改 TextInputLayout 提示引力

Unable to change TextInputLayout hint gravity programmatically

XML #1 - TextInputLayout 内的 TextInputEditText:

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/textInputLayout"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="0dp"
    android:layout_height="148dp"
    android:hint="Enter your email"
    app:boxStrokeColor="#000000"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/inputTextField"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="start|center_vertical" />

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

XML #2 - 只有一个简单的 TextInputEditText(未包装在 TextInputLayout 中):

<com.google.android.material.textfield.TextInputEditText
    android:id="@+id/inputTextField"
    android:layout_width="0dp"
    android:layout_height="200dp"
    android:hint="Password"
    android:gravity="top"
    android:ellipsize="end"
    android:inputType="textMultiLine"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

我想要做的就是将 TextInputLayout 中提示的重力更改为开始|顶部以编程方式

'programmatically' 部分很重要,因为我将此 TextInputLayout+TextInputEditText 重复用于需要提示文本不同位置的多个用例。

在 XML #1 的情况下,提示将保留在那里,因为以下 2 行不起作用:

Activity代码:

    inputTextField.gravity = Gravity.START or Gravity.TOP
    textInputLayout.gravity = Gravity.START or Gravity.TOP

在 XML #2 的情况下,这完美地工作并且提示移动到顶部:

Activity代码:

    inputTextField.gravity = Gravity.START or Gravity.TOP

为什么 XML #1 的提示没有以编程方式移动?

期望的结果:

在布局中可以使用 android:gravity="top"TextInputEditText:

<com.google.android.material.textfield.TextInputLayout
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    ...>

    <com.google.android.material.textfield.TextInputEditText
        android:gravity="top"
        ..>

您可以以编程方式使用:

textinputlayout.getEditText().setGravity(Gravity.TOP);

它需要版本 1.2.0-alpha06

最后一点。
目前使用 FilledBox 样式只能将 android:minLines 添加到 2 或更大到 TextInputEditText.