OutlinedBox TextInputLayout和重力中心?

时间:2018-11-21 13:28:32

标签: android material-design android-support-library material-components

如何使用 TextInputLayout 实现居中的 OutlinedBox 新样式?

当前行为:

left and center

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout2"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    >
    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:hint="hint"
        />
</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    >
    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:hint="hint2"
        />
</android.support.design.widget.TextInputLayout>

我使用com.android.support:design:28.0.0

有什么想法可以实现以外观为中心的TextInputEditText?

2 个答案:

答案 0 :(得分:1)

使用Material Components Library,从版本1.2.0-alpha02开始,折叠的标签位置是通过编辑文本gravity确定的。

使用类似的东西

<com.google.android.material.textfield.TextInputLayout
    android:hint="@string/...."
    ...>

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

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

结果是:

enter image description here

答案 1 :(得分:0)

轮廓文本字段内的居中文本并不是我们所支持的情况。指南(https://material.io/design/components/text-fields.html)中根本没有提到它

当应用重心时,标签文本居中确实看起来像个错误。修复此问题最简单的方法是将https://github.com/material-components/material-components-android上的修复发送给我们。或者,您可以在此处提交错误:https://issuetracker.google.com/issues/new?component=439535