2012-12-21 20 views
5

Sto tentando di utilizzare GridLayout e sto riscontrando problemi nell'espansione delle righe (con TextView) per "riempire" lo spazio nel layout.Come possono essere espanse le righe?

Vertical Picture (linea rossa nota è dove le righe dovrebbero essere anche ampliata): enter image description here

Immagine orizzontale:
enter image description here

main.xml:

<?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="match_parent" 
    android:columnCount="2" 
    android:useDefaultMargins="true" > 
<TextView 
    style="@android:style/TextAppearance.Large" 
    android:layout_columnSpan="2" 
    android:layout_gravity="center_horizontal" 
    android:padding="8dp" 
    android:text="Which means: lacking in originality as to be obvious and boring." /> 
<Space android:layout_height="24dp" android:layout_columnSpan="2" /> 
<TextView style="@style/AnswerLetter" android:text="A." /> 
<TextView style="@style/AnswerChoice" android:text="ascetic" /> 
<TextView style="@style/AnswerLetter" android:text="B." /> 
<TextView style="@style/AnswerChoice" android:text="banal" /> 
<TextView style="@style/AnswerLetter" android:text="C." /> 
<TextView style="@style/AnswerChoice" android:text="contraption" /> 
<TextView style="@style/AnswerLetter" android:text="D." /> 
<TextView style="@style/AnswerChoice" android:text="dominion" /> 
<TextView style="@style/AnswerLetter" android:text="E." /> 
<TextView style="@style/AnswerChoice" android:text="enervation" /> 
</GridLayout> 

styles.xml :

<style name="AnswerLetter" parent="@android:style/TextAppearance.Medium"> 
    <item name="android:layout_gravity">right</item> 
    <item name="android:paddingLeft">32dp</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:gravity">center_vertical|center_horizontal</item> 
</style> 
<style name="AnswerChoice" parent="@android:style/TextAppearance.Large"> 
    <item name="android:layout_gravity">left</item> 
    <item name="android:paddingLeft">32dp</item> 
    <item name="android:gravity">left</item> 
</style> 
+0

Utilizzare "[modifica]" per aggiungere questo codice alla tua domanda. – Sam

+0

vuoi espandere l'intera tabella alla linea rossa o il testo nella tabella alla linea rossa? – Jaguar

+0

Desidero espandere solo TextView con gli stili AnswerLetter, AnswerChoice per riempire l'intera linea rossa. – AG1

risposta

6

Si desidera che tutti i tuoi subviews bambino a crescere (in altezza), al fine di compilare quello spazio in più, ma non è possibile all'interno di un GridLayout:

GridLayout non fornisce il supporto per il principio di peso, come definito in peso. In generale, non è quindi possibile configurare un GridLayout per distribuire lo spazio in eccesso in proporzioni non banali tra più righe o colonne ... Per il controllo completo sulla distribuzione dello spazio in eccesso in una riga o colonna; utilizzare una visualizzazione secondaria LinearLayout per contenere i componenti del gruppo cella associata."

Prova ad aggiungere un layout lineare come una visualizzazione secondaria e impostando gli attributi peso di tutti i bambini allo stesso valore (così si espandono ugualmente).

domanda simile: GridLayout (not GridView) how to stretch all children evenly

3

Se ho capito si correttamente - questo layout può risolvere il problema GridView non può strech colonna alta, in modo da poter utilizzare LinearLayout faccio questo layout per voi, maybye ha bisogno.. alcune regolazioni di imbottitura

horisontal vertial

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    android:id="@+id/LinearLayout1" 
    android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <TextView 
     style="@android:style/TextAppearance.Large" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:padding="8dp" 
     android:text="Which means: lacking in originality as to be obvious and boring." /> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_weight="1" 
     android:gravity="center_vertical" 
     android:layout_height="wrap_content"> 
     <TextView 
      style="@style/AnswerLetter" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical" 
      android:text="A." /> 
     <TextView 
      style="@style/AnswerChoice" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical" 
      android:text="ascetic" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:gravity="center_vertical" 
     android:layout_weight="1" 
     android:layout_height="wrap_content"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical" 
      style="@style/AnswerLetter" 
      android:text="B." /> 
     <TextView 
      style="@style/AnswerChoice" 
      android:layout_width="match_parent" 
      android:gravity="center_vertical" 
      android:layout_height="match_parent" 
      android:text="banal" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:gravity="center_vertical" 
     android:layout_weight="1" 
     android:layout_height="wrap_content"> 
     <TextView 
      style="@style/AnswerLetter" 
      android:layout_width="wrap_content" 
      android:gravity="center_vertical" 
      android:layout_height="match_parent" 
      android:text="C." /> 
     <TextView 
      style="@style/AnswerChoice" 
      android:layout_width="match_parent" 
      android:gravity="center_vertical" 
      android:layout_height="match_parent" 
      android:text="contraption" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:gravity="center_vertical" 
     android:layout_weight="1" 
     android:layout_height="wrap_content"> 
     <TextView 
      style="@style/AnswerLetter" 
      android:layout_width="wrap_content" 
      android:gravity="center_vertical" 
      android:layout_height="match_parent" 
      android:text="D." /> 
     <TextView 
      style="@style/AnswerChoice" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical" 
      android:text="dominion" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:gravity="center_vertical" 
     android:layout_weight="1" 
     android:layout_height="wrap_content"> 
     <TextView 
      style="@style/AnswerLetter" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical" 
      android:text="E." /> 
     <TextView 
      style="@style/AnswerChoice" 
      android:layout_width="match_parent" 
      android:gravity="center_vertical" 
      android:layout_height="match_parent" 
      android:text="enervation" /> 
    </LinearLayout> 
</LinearLayout> 
Problemi correlati