Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo puedo alignBaseline a la línea de fondo de TextView multi-línea?

Tengo dos TextViews lado a lado. Digamos que el TextView izquierdo es 1 línea y el TextView derecho es 2 líneas. ¿Hay alguna manera de alinear las líneas de base del TextView izquierdo con la última línea en el TextView derecho?

Estoy abierto a usar cualquier diseño (RelativeLayout, LinearLayout, etc) que puede lograr esto.

(El comportamiento predeterminado de android:layout_alignBaseline en Android es que alinea las líneas de base de las líneas superiores.)

  • Android: ¿Cómo rastrear el origen de una InflateException?
  • Uso de la API de Google Places
  • Disposición de Android como botón con funcionalidad seleccionable
  • Android: Círculo de dibujo con el interior del texto
  • ¿Cuál es el significado de xmlns: herramientas en el diseño de Android XML?
  • Lengüetas estilo Android SlidingTabs con esquinas redondas
  • TabLayout falta después de actualizar la biblioteca de soporte de diseño
  • ContentDescription = "@ null" una mala idea?
  • 2 Solutions collect form web for “¿Cómo puedo alignBaseline a la línea de fondo de TextView multi-línea?”

    Puede lograr esto con RelativeLayout si implementa un TextView personalizado. Específicamente, podría sobrescribir TextView.getBaseline así:

     package mypackage.name; // TODO: imports, etc. public class BaselineLastLineTextView extends TextView { // TODO: constructors, etc. @Override public int getBaseline() { Layout layout = getLayout(); if (layout == null) { return super.getBaseline(); } int baselineOffset = super.getBaseline() - layout.getLineBaseline(0); return baselineOffset + layout.getLineBaseline(layout.getLineCount()-1); } } 

    A continuación, utilizar su TextView personalizado dentro de un RelativeLayout de la siguiente manera:

     <mypackage.name.BaselineLastLineTextView android:id="@+id/text_view_1" <!-- TODO: other TextView properties --> /> <TextView android:id="@+id/text_view_2" android:layout_alignBaseline="@id/text_view_1" <!-- TODO: other TextView properties --> /> 

    Supongo que un RelativeLayout lo haría.

     <RelativeLayout..> <TextView android:id="@+id/tv2" android:layout_alignParentRight="true" android:maxLines="2" ... /> <TextView android:id="@+id/tv1" android:layout_toLeftOf="@id/tv2" android:layout_alignBottom="@id/tv2" android:maxLines="1" ... /> </RelativeLayout> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.