2012-12-21 24 views
5

Próbuję użyć GridLayout i mam problem z rozwinięciem wierszy (z TextView), aby "wypełnić" przestrzeń w układzie.W jaki sposób można rozszerzyć wiersze?

pionowe zdjęcie (uwaga czerwona linia, gdzie rzędy powinny rozszerzać): enter image description here

poziome zdjęcie:
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

Proszę użyć "[edit]", aby dodać ten kod do Twojego pytania. – Sam

+0

Czy chcesz rozwinąć cały stół do czerwonej linii lub tekstu w tabeli do czerwonej linii? – Jaguar

+0

Chcę rozwinąć tylko TextViews ze stylami AnswerLetter, AnswerChoice, aby wypełnić całą czerwoną linię. – AG1

Odpowiedz

6

Chcesz wszystkie subviews dziecko rośnie (w wysokości) w celu wypełnienia tej dodatkowej przestrzeni, ale nie jest to możliwe wewnątrz GridLayout:

GridLayout nie zapewnia wsparcia dla zasady ciężar, jak określono wagowo. Zasadniczo nie jest więc możliwe skonfigurowanie GridLayout do dystrybucji nadmiarowej przestrzeni w nietrywialnych proporcjach między wieloma wierszami lub kolumnami ... Aby uzyskać pełną kontrolę nad nadmiarem rozkładu przestrzeni w rzędzie lub kolumnie; używać podrzędny LinearLayout trzymać składniki w odpowiedniej grupie komórkowej.”

spróbuj dodać liniowy układ jako podrzędny i ustawianie atrybutów masy wszystkich dzieci do tej samej wartości (a więc rozwinąć równo).

Podobne pytanie: GridLayout (not GridView) how to stretch all children evenly

3

Jeśli rozumiem zostanie poprawnie - to układ może rozwiązać swój problem GridView nie może strech kolumny wysokosc, dzięki czemu można używać LinearLayout robię ten układ dla ciebie, maybye potrzebuje.. niektóre korekty wypełnienia

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> 
Powiązane problemy