2015-11-18 8 views
7

Su alcuni dispositivi Android (LG Google Nexus 5 con Android L e M) un TextView con Android: ellipsize = "tendone" e padding risulta nel testo traboccante la vista testuale. Si verifica sul lato destro ma non sul lato sinistro del TextView, sebbene, mentre il padding è applicato sia sul lato sinistro che sul lato destro.Come risolvere il testo traboccante TextView con padding android: ellipsize = "tendone"

screenshot

Non si verifica sul Samsung Galaxy S3 e S6 con Android K ed L, rispettivamente.

<TextView 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginBottom="1dp" 
android:paddingTop="2dp" 
android:paddingBottom="2dp" 
android:paddingLeft="4dp" 
android:paddingRight="4dp" 
android:singleLine="true" 
android:ellipsize="marquee" 
android:marqueeRepeatLimit="marquee_forever" 
android:scrollHorizontally="true" 
android:freezesText="true" 
android:alpha="0.85" 
android:background="@color/by433_gray_darker" 
android:textColor="@color/white" 
android:textSize="11sp" /> 

Cosa posso fare per risolvere o aggirare questo?

risposta

2

Il tuo problema è un bug di Android e already reported and assigned su Android Open Source Project:

tua soluzione alternativa potrebbe assomigliare a questo:

<FrameLayout android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingTop="2dp" 
      android:paddingBottom="2dp" 
      android:paddingLeft="4dp" 
      android:paddingRight="4dp" 
      android:layout_marginBottom="1dp" 
      android:background="@color/by433_gray_darker"> 
    <TextView 
     android:id="@+id/textId" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:singleLine="true" 
     android:ellipsize="marquee" 
     android:marqueeRepeatLimit="marquee_forever" 
     android:scrollHorizontally="true" 
     android:freezesText="false" 
     android:alpha="0.85" 
     android:text="super nice text text text text text text text text text text text text text text text text text" 
     android:textColor="@color/white" 
     android:textSize="11sp" /> 
</FrameLayout> 

Così, l'idea è quella di avere un contenitore involucro con imbottiture, margini e sfondo. (Non dovrebbe essere molto più di sovraccarico delle prestazioni, se avete solo paio di tali punti di vista)


risposta sbagliata originale (anche se c'erano due TextViews) Il problema potrebbe essere dovuto alla combinazione di tanti attributi il tuo TextView. Ecco alcuni suggerimenti:

  1. Prima prova per rimuovere l'attributo uno per uno controllando il risultato
  2. Si può cercare per specificare imbottiture sul vostro contenitore, invece di opinioni testo
  3. dal layout sembra che si può provare qualcosa di simile invece di "match_parent" sul vostro punto di vista del testo:

    <LinearLayout android:orientation="horizontal" ...> 
        <TextView android:layout_width="0dp" android:layout_weight="1" ... /> 
        <TextView android:layout_width="0dp" android:layout_weight="1" ... /> 
    </LinearLayout> 
    
+0

Grazie Gregory, ma non ho il tempo di verificare il diritto n ow, ma se nessun altro risponderà in meno di 5 giorni ti darò la taglia ... altrimenti la taglia svanirà: P .. 'ma per il momento' la domanda principale rimane .. perché non lo fa Si verificano su Samsung Galaxy S3 e S6 con Android K e L. –

+0

@WojtekDmyszewicz ha voluto fornire alcune idee su come iniziare a sistemare/risolvere il problema. Lo esamineremo un po 'di più, se puoi fornire il codice problematico del codice (intendo contenitore + viste di testo) – GregoryK

+0

perché concedere una taglia se la domanda non viene risolta? La vista testo si trova all'interno di una finestra lineare (con la vista testuale del titolo) allineata al fondo genitore (relativelayout). Il nocciolo della domanda è: perché questo traboccare si verifica da un lato, su alcuni dispositivi, del tutto. Si prega di dimostrare che la soluzione 3 funzionerebbe. –

Problemi correlati