【问题标题】:How to add a character counter to a material design textfield in Android studio Java如何在 Android Studio Java 中向材料设计文本字段添加字符计数器
【发布时间】:2021-07-06 09:05:54
【问题描述】:

我正在尝试向材料设计文本字段添加字符计数器,这是文本字段 xml 代码:

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/outlinedTextFieldDescripcionUniverso"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="370dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="40dp"
    android:hint="@string/descripcion"
    android:textColorHint="@color/textos"
    app:counterEnabled="true"
    app:counterMaxLength="150"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/outlinedTextFieldNombreUniverso"> 

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/textInputEditTextDescripcionUniverso"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:inputType="textMultiLine"
        android:textColor="@color/textos" />
</com.google.android.material.textfield.TextInputLayout>

这很好用,计数器出现了,

textfield with counter

但是我想让文本字段在垂直方向更大,所以它可以作为一个文本区域,您可以在其中编写多行并且始终具有相同的高度。所以我改变了textfield和textInputEditText的布局高度,代码如下:

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/outlinedTextFieldDescripcionUniverso"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="370dp"
    android:layout_height="150dp"
    android:layout_marginTop="40dp"
    android:hint="@string/descripcion"
    android:textColorHint="@color/textos"
    app:counterEnabled="true"
    app:counterMaxLength="150"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/outlinedTextFieldNombreUniverso">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/textInputEditTextDescripcionUniverso"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="top"
        android:inputType="textMultiLine"
        android:textColor="@color/textos" />
</com.google.android.material.textfield.TextInputLayout>

bigger textfield without counter

现在字符计数器已经消失(我假设它隐藏在文本字段下)。 ¿ 为什么它不移动到文本字段的末尾?

¿还有其他方法可以做到这一点吗?我尝试了普通的文本字段,同样的情况发生了

【问题讨论】:

    标签: android xml android-studio android-layout material-design


    【解决方案1】:

    我认为这是因为 TextInputLayout 具有固定的高度,正如我在您的代码中看到的那样 android:layout_height="150dp"

    解决方案代码:

    <com.google.android.material.textfield.TextInputLayout
    android:id="@+id/outlinedTextFieldDescripcionUniverso"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="370dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="40dp"
    android:hint="@string/descripcion"
    android:textColorHint="@color/textos"
    app:counterEnabled="true"
    app:counterMaxLength="150"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/outlinedTextFieldNombreUniverso">
    
    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/textInputEditTextDescripcionUniverso"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:gravity="top"
        android:inputType="textMultiLine"
        android:textColor="@color/textos" />
    

    如果有什么不清楚的地方可以随时提问。如果对你有帮助,请标记为正确答案,以便将来这个答案可以帮助任何其他有需要的人。?

    【讨论】:

    • 是的,这就是问题所在,谢谢! :)
    • 欢迎您,@xabierciavalencia。很高兴为您提供帮助。
    猜你喜欢
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    相关资源
    最近更新 更多