Ho una tabella con 3 righe di numeri (informazioni di riepilogo). Quando le TextView sono in stile con la gravità predefinita, il testo viene visualizzato correttamente.TextView che mostra un solo carattere quando viene applicato lo stile gravità
Ma quando sono in stile con <item name="android:gravity">right</item>
, ogni TextView mostra solo il primo carattere di quello che dovrebbe.
questo include anche le intestazioni delle colonne - non indicati qui - che non sto nemmeno cambiando.
Vorrei che i valori della tabella fossero allineati a destra per essere coerenti con il resto dell'app e sono perplesso sul motivo per cui i valori nella tabella si comporterebbero in questo modo.
Qui è il mio stile (per quando non funziona):
<style name="summary_values">
<item name="android:textSize">@dimen/font_size</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@color/background</item>
<item name="android:gravity">right</item>
</style>
Ecco l'XML per una delle celle (sono tutti fondamentalmente la stessa)
<TextView
android:id="@+id/value1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_value"
style="@style/summary_values"/>
Edit
Il troncamento si verifica anche quando gravity
è impostato su left
o center
.
Edit 2
Ho rimosso la linea <item name="android:gravity">right</item>
dallo stile del tutto ed è ancora troncare a volte, a seconda dei valori. Ho passato il mio codice e i valori nel codice sono corretti.
Edit 3
Dopo aver rimosso tutto lo stile, tranne il colore del carattere, il troncamento avviene ancora, ma non ho capito quando. Se cambio i numeri nella tabella di input, i valori di riepilogo a volte vengono troncati e talvolta no.
Ecco una riga dal tavolo. Tutte le righe sono simili, a parte le modifiche all'ID.
<TableRow
android:padding="@dimen/pad_12">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_label"
android:text="@string/cho"
style="@style/label_light"/>
<TextView
android:id="@+id/percent_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_value"
style="@style/summary_values"/>
<TextView
android:id="@+id/val1a"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_value"
style="@style/summary_values"/>
<TextView
android:id="@+id/val1b"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_value"
style="@style/summary_values"/>
</TableRow>
Edit 4
Dopo aver provato un certo numero di cose, ho cambiato il contenente TableView
ad un LinearLayout
con orientamento orizzontale. Ho persino lasciato le viste TableRow
così com'erano (aggiungendo semplicemente layout_width e layout_height). Sorprendentemente, ora funziona.
Per descrivere il comportamento dispari un po 'di più: quando stava visualizzando solo il primo carattere, se avessi aperto la tastiera virtuale e l'avessi chiusa di nuovo, la tabella sarebbe stata visualizzata correttamente, finché non ho modificato uno dei valori di EditText. Si è comunque comportato in modo strano anche quando ho rimosso 2 delle colonne dal tavolo, quindi c'era molto spazio per le viste.
Lo fa con qualsiasi valore impostato su "android: gravità"? Come, tronca con 'left' o' center'? –
@AndrewSchuster: appena provato e sì, troncato con 'left' e' center'. –
Quando si esegue il dump della gerarchia delle viste, le viste del testo sono nella posizione corretta e con una dimensione errata o nella posizione errata con la dimensione corretta? – matiash