13

我已经尝试了许多在线可用的选项,但它们似乎都不起作用。

我为此目的使用了这个 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 中。但他们都没有工作。

4

3 回答 3

12

你不能。

TextInputLayout使用CollapsingTextLayoutwhich 将提示测量为CharSequence

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

CharSequence没有线条的概念,因此您不能添加更多。


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

于 2017-07-06T08:54:14.547 回答
1

您可以使用 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>
于 2021-05-28T19:32:35.470 回答
0

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

重要提示:如果我们将提示设置为 TextInputLayout,那么它将不起作用。

于 2019-09-01T07:18:36.260 回答