Come rimuovere il margine superiore di TextView?

Ho un problema con TextView . Non voglio avere alcun margine / padding sopra di esso.

  

Il mio TextView appare come questo e nonostante textSize e height siano impostati sullo stesso valore, c’è uno spazio sopra il font. Mi dà fastidio perché voglio mettere un’altra vista relativamente alla parte superiore del carattere. Questa spaziatura è inclusa nel carattere stesso?

TextView in RelativeLayout

E un’altra domanda: se ho scoperto che il margine 20dp dall’alto e il 7dp dal basso funziona perfettamente sul mio dispositivo, posso contare che si comporterà in modo simile su altri schermi? (questi margini sono per i pulsanti)

using android:includeFontPadding="false" mi ha aiutato molto in una situazione simile.

Ho avuto lo stesso problema su android:includeFontPadding=false non ha aiutato. La soluzione migliore che ho trovato in tempi ragionevoli è stata quella di sovrascrivere il metodo onDraw di TextView e di adattare la canvas alla differenza tra i valori di top e ascent delle metriche dei font:

 FontMetricsInt fontMetricsInt; @Override protected void onDraw(Canvas canvas) { if (adjustTopForAscent){ if (fontMetricsInt == null){ fontMetricsInt = new FontMetricsInt(); getPaint().getFontMetricsInt(fontMetricsInt); } canvas.translate(0, fontMetricsInt.top - fontMetricsInt.ascent); } super.onDraw(canvas); } 

Quello che devi fare è mettere l’altra vista relativa alla parte superiore del carattere e dargli un android:layout_marginBottom negativo android:layout_marginBottom in dip, tale che corrisponda alla parte superiore del carattere. Se il carattere ha un margine, non penso che ci sia un modo migliore per farlo.

Sì, questo spazio è incluso di default. Non sei in grado di rimuovere quello spazio come nella mia area di ricerca. Quindi è necessario implementare alcune logiche per avere tale visualizzazione.

Vedi sotto immagine:

inserisci la descrizione dell'immagine qui

Non è una buona idea ma puoi fare come sotto il codice:

  < ?xml version="1.0" encoding="utf-8"?>     

Qui, il primo “10” è di proprietà e il secondo è quello che ho impostato per te.

Godere. :))