如何根据提示长度设置 TextInputLayout 的宽度?

问题描述

我有一个带有动态提示的 TextInputLayout。提示的长度在6-10个字符之间,输入的长度总是更小(3-5个字符)。

因为 Hint 字符串的长度会有所不同,所以我想设置 layout_width 以取决于提示的长度。

如果我只设置 android:layout_width="wrap_content",它将采用输入的宽度,而不是提示的长度。

enter image description here

这是我目前的代码

    <android.support.design.widget.TextInputLayout
        android:layout_width="95dp"
        android:layout_height="wrap_content"
        android:background="@drawable/textinput_gray_alt"
        local:hintTextAppearance="@style/TextAppearance.App.TextInputLayout">
    <android.support.design.widget.TextInputEditText
        android:id="@+id/quantityEditFirstValue"
        android:fontFamily="@drawable/RobotoMedium"
        android:textSize="16sp"
        android:background="@null"
        android:textColor="@color/tundora"
        android:inputType="numberDecimal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:maxLength="7"
        local:MvxBind="Text FirstQuantityValue; Hint FirstQuantity.Unit; TextColor NativeColor(FirstQuantityTextColor)"/>
</android.support.design.widget.TextInputLayout>

解决方法

您是否尝试过这样做:

TextInputEditText textInputEditText = FindViewById<TextInputEditText>(Resource.Id.quantityEditFirstValue);
textInputEditText.Hint = "xxxxxxxx";
var measureText = (int)textInputEditText.Paint.MeasureText(textInputEditText.Hint);
textInputEditText.SetWidth(textInputEditText.PaddingLeft + textInputEditText.PaddingRight + measureText);