studio - propiedades edittext android




El tamaño automático de TextView no funciona(Android O) (6)

¿Ha intentado configurar los cuatro atributos descritos en el enlace que publicó?

P.ej

app:autoSizeTextType="uniform"
app:autoSizeMaxTextSize="13sp"
app:autoSizeMinTextSize="5sp"
app:autoSizeStepGranularity="1sp"

También puede intentar configurar el ancho y el alto para wrap_content, y establecer minWidth y maxWidth a 56dp.

Como posiblemente también se mencionó en los comentarios, las líneas máximas parecen causar problemas (para mí también), así que intente eliminar eso (el autoajuste probablemente debería encargarse de esto, reduciendo el tamaño del texto).

Utilizo la nueva función de tamaño automático agregada en la biblioteca de soporte 26. Leí una documentación que se puede encontrar aquí: https://developer.android.com/preview/features/autosizing-textview.html

Supongo que debería funcionar de esta manera: puede habilitar el tamaño automático con este atributo: app:autoSizeTextType="uniform" . Creo que TextView debería usar todo el espacio disponible para mostrar un texto completo (no solo una parte, no debe recortarse) y el textSize del textSize debe ser lo más grande posible. Si necesita limitar un tamaño máximo o mínimo del texto, puede usar estos dos atributos:

app:autoSizeMinTextSize="XXsp" // (you can also use px or dp values.)

o

app:autoSizeMaxTextSize="XXsp"

Hasta ahora tan bueno. Digamos que necesito un TextView con 56dp de ancho. Tengo textos con una longitud diferente y quiero configurar estos textos para este TextView . Se debe redimensionar automáticamente para que muestre todo el texto (todos los caracteres + no recortados) en el mayor textSize posible.

Este es mi TextView:

<android.support.v7.widget.AppCompatTextView
        android:id="@+id/vName"
        style="@style/TextView.AutoSize"
        android:layout_width="56dp"
        android:gravity="bottom|center_horizontal"
        android:maxLines="1"
        app:autoSizeMinTextSize="1px"
        app:autoSizeTextType="uniform"
        app:layout_constraintBottom_toTopOf="@id/vGuideline"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent" />

Desafortunadamente, la vista de texto está recortada. Quería establecer esta cadena como un texto en el TextView anterior: "Groupa" pero este es el resultado:

(TextView está dentro de ConstraintLayout con fondo de círculo amarillo).

Como se puede ver, la vista de texto no se redimensiona en absoluto. ¿Tienes idea de qué hacer?

Gracias.


¿Qué valor estableciste en el atributo android: layout_height?

En el documento : " Si establece el tamaño automático en un archivo XML, no se recomienda usar el valor" wrap_content "para los atributos layout_width o layout_height de TextView. Puede producir resultados inesperados " .


Configura tu TextView esta manera

<TextView
    android:id="@+id/vName"
    android:layout_width="56dp"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:text="Groupa"
    app:autoSizeMinTextSize="12sp"
    app:autoSizeMaxTextSize="20sp"
    app:autoSizeTextType="uniform"
    />

Funciona bien en Android 22, 23, 26


En mi caso, el problema era algo muy estúpido: aunque el autoajuste siempre funcionaba bien para mí, en exactamente un TextView usé android: espacio de nombres en lugar de app: :! Estaba totalmente ajeno a mi error y me preguntaba por qué no funcionaba. Por lo tanto, cuando utilice un tema de AppCompat asegúrese siempre de usar los atributos de AppCompat , no los nativos.


Si no sabes el tamaño de la vista de texto. por ejemplo, los coloca en linearlayout y establece la altura o el ancho en 0dp. entonces tengo una solucion debe establecer AutoSizeTextTypeWithDefaults en el evento OnSizeChanged.

@Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        this.setAutoSizeTextTypeWithDefaults(AUTO_SIZE_TEXT_TYPE_UNIFORM);

    }

Tuve el mismo problema. Lo resolví cambiando dos líneas en mi gradle: compile 'com.android.support:support-v4:26.0.1' y compile 'com.android.support:appcompat-v7:26.0.1' Para encajar textos más largos tienes para agregar las cuatro opciones, como esta:

<android.support.v7.widget.AppCompatTextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/your_string"
        app:autoSizeTextType="uniform"
        app:autoSizeMaxTextSize="13sp"
        app:autoSizeMinTextSize="5sp"
        app:autoSizeStepGranularity="1sp"/>




android-8.0-oreo