如何让Textinputlayout在多行中提示android?

时间:2016-07-18 10:01:29

标签: android android-edittext hint textinputlayout

我在网上尝试过很多选项,但似乎都没有。

我已将此XML用于此目的。

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:hintTextAppearance="@style/TextLabel">

    <com.projects.fonts.RobotoEditText
        style="@style/EditText"
        android:hint="@string/description"
        android:singleLine="false"
        app:font="@string/roboto_regular" />

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

我也设置了

<item name="android:singleLine">false</item>
TextLabel和EditText中的

。但他们都没有工作。

3 个答案:

答案 0 :(得分:7)

你不能。

TextInputLayout使用CollapsingTextLayout来衡量提示为CharSequence

mTextPaint.measureText(mTextToDraw, 0, mTextToDraw.length())

CharSequence没有一条线的概念,因此您无法添加更多内容。

如果这么长时间,它并不是一个暗示。 如果您仍想显示它,请考虑在下方/上方/上方添加单独的TextView并为其设置动画(如果需要/需要)。

答案 1 :(得分:0)

simas相比,似乎有一种解决方法。您可以通过在TextInputEdittext中以编程方式设置提示来实现预期的行为。下坡是浮动标签在此之后不起作用,我相信我们没有这么长的暗示,这并不是我们期望的。

重要说明::如果将提示设置为TextInputLayout,则它将不起作用。

答案 2 :(得分:0)

您可以使用 TextInputLayout 和 TextInputEditText 执行此操作。

在 TextInputEditText 中,像往常一样设置提示 (android:hint="Hint Text")。

在 TextInputLayout 中,您必须通过设置“app:hintEnabled="false”来禁用提示。

注意事项:

如果您将hintEnabled 设置为true(默认为true),提示将是单行并在用户点击EditText 使其获得焦点时变成一个标签。

如果您将hintEnabled 更改为false,此功能将被删除,并且EditText 按预期显示多行提示。它不会变成标签并在用户开始实际输入后消失。

示例代码如下:

<com.google.android.material.textfield.TextInputLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    app:hintEnabled="false"
                    app:boxBackgroundMode="none">

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