2012-09-02 4 views
8

Ho un problema nell'utilizzare GridLayout usando la compatibilità di libreria (non provata senza). Sto usando app:layout_gravity="fill_horizontal" invece di android:layout_gravity="fill_horizontal" ma tutto il contenuto all'interno di TextView non viene visualizzato. Per visualizzare tutto, devo impostare l'altezza del "Titolo" TextView ma voglio un'altezza dinamica, non un'altezza impostata.Altezza dinamica di TextView all'interno di GridLayout

Qualche idea?

risposta

27

È necessario impostare layout_width="0dp" e layout_gravity="fill_horizontal" per TextView.

<TextView 
android:layout_width="0dp" 
app:layout_gravity="fill_horizontal" /> 

Si prega, si veda ad esempio completo qui: https://groups.google.com/d/msg/android-developers/OmH3VBwesOQ/ZOGR0SGvC3cJ o qui: http://daniel-codes.blogspot.com/2012/01/gridlayout-view-clipping-issues.html

+0

È importante notare l'app **: layout_gravity. Stavo impostando il valore in uno stile e non mi aveva avvertito, mi ci è voluto un po 'per capire il problema. – basilisk

+0

Prende la larghezza della larghezza della riga precedente se si trova nella seconda riga –

17

Utilizzando TextView all'interno GridLayout è problematica, ma non v'è un buon modo per utilizzare entrambi insieme.

Questo è ciò che il layout di esempio si presenta come:

TextView inside GridLayout

E questo è il xml layout completo, le linee importanti sono contrassegnate con ***.

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:columnCount="3"    * this example uses 3 columns 
    android:orientation="horizontal" > *** use "horizontal" 

<TextView        * just a normal view 
    android:layout_column="0" 
    android:layout_row="0" 
    android:background="#666666" 
    android:text="A" 
    android:textColor="#afafaf" 
    android:textSize="60sp" 
    android:textStyle="bold" /> 

<TextView        * this text will not be cut! 
    android:layout_width="0dp"   *** important: set width to 0dp 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_columnSpan="2"  * colspan does also work with this 
    android:layout_gravity="fill_horizontal|bottom"  *** set to "fill*"! 
    android:layout_row="0" 
    android:text="This view has 2 columns. Lorem ipsum dolor sit amet, consetetur sadipscing elitr." 
    android:textColor="#666666" /> 

</GridLayout> 

A seconda delle esigenze, anche questa combinazione funziona:

android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:layout_gravity="fill" 
    android:gravity="bottom" 

Si noti che non c'è bisogno di utilizzare qualsiasi spazio dei nomi diverso android per questo lavoro.

+0

Grazie, funziona. Ma sono curioso di sapere come hai scoperto quel trucco? (0dp per 'layout_width' e riempie le proprietà per' layout_gravity') – Leo

+2

Ottimo lavoro che lo trova. Ho avuto difficoltà a ottenere il mio TextView che avvolge il testo correttamente all'interno del mio GridLayout. Seguito tutti gli altri suggerimenti e risposte su molti argomenti su questo stesso problema, ma solo il tuo ha funzionato. Grazie mille! :) –

Problemi correlati