2017-05-28 2 views
0

Ich frage mich, warum im Portrait-Modus, dieser Android xml nicht richtig wiedergegeben wird:Wie können Ansichten in Androids GridLayout umbrochen werden?

<?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:padding="20dp" 
    android:orientation="horizontal" 
    android:columnCount="5"> 
    <Switch 
     android:id="@+id/Switch1" 
     android:layout_column="0" 
     android:layout_columnSpan="5" 
     android:layout_row="0" 
     android:text="Use only WiFi when sending data?" 
     android:layout_marginBottom="10dp" 
     android:layout_columnWeight="5" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
    <TextView 
     android:id="@+id/TextView1" 
     android:layout_column="0" 
     android:layout_columnSpan="2" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Вкупно собрани податоци: " 
     android:layout_columnWeight="2" 
     android:maxHeight="60dp" 
     android:layout_gravity="fill_horizontal" 
     android:scrollHorizontally="false" 
     android:layout_width="wrap_content" 
     /> 
    <TextView 
     android:id="@+id/TextView2" 
     android:layout_column="2" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
    <TextView 
     android:id="@+id/TextView3" 
     android:layout_column="3" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
    <TextView 
     android:id="@+id/TextView4" 
     android:layout_column="4" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
</GridLayout> 

so aussieht Es soll:

|--1--|--2--|--3--|--4--|--5--| 
|  fills all columns  | 
|-----------|-----|-----|-----| 
|  2  | 1 | 1 | 1 | 
|-----------|-----|-----|-----| 

finde ich es seltsam, dass dies in der Landschaft gut arbeiten Modus, bis ich mehr Text in den Schalter oder Text Ansichten einfügen, so ist das Problem wahrscheinlich, weil der Inhalt nicht umhüllt, aber wie Sie sehen können, ich habe versucht, layout_width zu `wrap_content ', immer noch nicht funktioniert ... Also was fehlt noch ..?

* Übrigens ich Xamarin bin, aber ich glaube nicht, es ist Xamarin Designer-Problem, denn in Runtime ich das gleiche Layout bekommen, dass ich in der Designer sehen ..

Antwort

0

Ich denke Problem ist, dass dein Text der ersten TextView zu lang ist. Wenn der Text umbrochen werden soll, wenn die Länge des Inhalts zunimmt, können wir die Breite der Ansicht normalerweise als 0dp (android:layout_width="0dp") angeben, sodass das Rasterlayout die Breite dynamisch berechnet.

Ich habe festgestellt, dass android:layout_columnWeight="5" Ihrer Switch wird das Layout der TextView s in der zweiten Zeile. Änderte Ihren Code wie folgt und es funktioniert an meiner Seite:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="20dp" 
    android:orientation="horizontal" 
    android:columnCount="5"> 
    <Switch 
     android:id="@+id/Switch1" 
     android:layout_column="0" 
     android:layout_columnSpan="5" 
     android:layout_row="0" 
     android:text="Use only WiFi when sending data?" 
     android:layout_marginBottom="10dp" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
    <TextView 
     android:id="@+id/TextView1" 
     android:layout_column="0" 
     android:layout_columnSpan="2" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Вкупно собрани податоци: " 
     android:layout_columnWeight="2" 
     android:maxHeight="60dp" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="0dp" /> 
    <TextView 
     android:id="@+id/TextView2" 
     android:layout_column="2" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="0dp" /> 
    <TextView 
     android:id="@+id/TextView3" 
     android:layout_column="3" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="0dp" /> 
    <TextView 
     android:id="@+id/TextView4" 
     android:layout_column="4" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="0dp" /> 
</GridLayout> 
+0

Vielen Dank! 3 Tage suchen, hast du mich wirklich gerettet! – jovanMeshkov

Verwandte Themen