Android: TextInputLayout 不会将提示居中

Android: TextInputLayout won't center the hint

我在支持库的 textinputlayout 中包含了一个 edittext,我发现不可能让提示出现在字段的中心。我已经尝试了在其他 Whosebug 讨论中找到的所有常用技巧,正如您从代码示例中看到的那样,但提示仍然顽固地出现在编辑文本的左侧。我该如何解决?

请不要建议使用 paddingLeft 或 paddingStart 来执行此操作 - 我想要一些可以在不同设备上正常工作的东西,因此它必须是一个直接的解决方案而不是变通方法。

明确一点:如果我删除 textinputlayout,则提示会正确居中。这是导致此处问题的文本输入布局。

<android.support.design.widget.TextInputLayout
        android:id="@+id/someId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginStart="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginEnd="30dp"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:ellipsize="start"
        android:maxLines="1"
        android:inputType="textPersonName"
        >

    <EditText
        android:id="@+id/someId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:hint="@string/somehint"
        android:textColorHint="@color/somecolor"
        android:textSize="20sp"
        android:textColor="@android:color/black"
        android:background="@android:color/white"
        android:cursorVisible="true"
        android:textCursorDrawable="@null"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:inputType="textPersonName"
        android:maxLines="1"
        android:ellipsize="start"
        />

</android.support.design.widget.TextInputLayout>

使用最新版本的支持库:

    compile 'com.android.support:design:22.2.1'

编辑 - 我尝试解决的问题:

1) 用 android.support.v7.widget.AppCompatEditText 替换 Edittext - 不起作用

2) 在文本输入布局中使用 app:hintTextAppearance="@style/TextAppearance.AppCompat" - 不起作用

3) 不是在编辑文本中定义提示,而是使用 activity 中的 textinputlayout.sethint 以编程方式设置提示 - 不起作用:提示出现在左侧。

4) 在onActivityCreated 中设置edittext 的提示。这最初似乎有效,但我发现虽然提示显示居中,但 inputtextlayout 的功能被破坏并且单击 edittext 不再执行提示动画。

似乎没有办法做到这一点(至少我找不到)。作为解决方法,我尝试使用 MaterialEdittext 第 3 方库 - 也不是理想的,因为虽然小动画提示居中,但它出现在文本框内而不是文本框外:

https://github.com/rengwuxian/MaterialEditText

要使 EditText 中的提示文本居中,只需在 EditText 中添加以下两个属性。这样就可以了。

android:ellipsize="start"
android:gravity="center_horizontal"