Warum GridLayout füllt nicht alle verfügbaren Platz?

Ich habe ein GridLayout (zu dem ich die Kinder programmgesteuert hinzufüge).

Das Ergebnis ist hässlich, weil die GridLayout nicht alle verfügbaren Speicherplatz füllt.

  • Zugriff auf Dateien von genymotion SD-Karte
  • Wie man E-Mail mit Link zum Öffnen der Android-Anwendung sendet
  • Wie man android app vollständig schließt
  • So verwenden Sie onActivityResult-Methode von anderen als Aktivitätsklasse
  • Android ImageButton mit einem ausgewählten Zustand?
  • Was ist der Unterschied zwischen Extends Application und Extends Activity in Android?
  • Dies ist das Ergebnis:

    Bildbeschreibung hier eingeben

    Das ist mein XML:

    <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <HorizontalScrollView android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v7.widget.GridLayout android:id="@+id/gridlayout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" > </android.support.v7.widget.GridLayout> </HorizontalScrollView> </ScrollView> 

  • Rechtschreibprüfung android studio / IntelliJ Idee
  • Android-Set-Stil in Code
  • Kann mir jemand mit Android RemoteControlClient helfen?
  • DOMException: play () kann nur von einer User-Geste initiiert werden
  • NoSuchMethodError: String.isEmpty
  • Der richtige Platz für das Setzen von MP3-Dateien in ein Android-Projekt
  • 6 Solutions collect form web for “Warum GridLayout füllt nicht alle verfügbaren Platz?”

    Ich denke, dass alles gut ist mit dem Verhalten deines Layouts.

    Die android:layout_width="match_parent" Einstellung für GridLayout , die in HorizontalScrollView platziert wird, hat keine Wirkung. Eine einzelne untergeordnete Ansicht, die in GridLayout eingefügt wird, bestimmt die tatsächliche Breite von GridLayout ( Höhe, wenn Sie den vertikalen ScrollView- Container verwendet haben), der größer sein kann als die Bildschirmbreite des übergeordneten Elements ( width = match_parent Einstellung hat also keine Wirkung und auch für childviews). Die Spalten und Zeilen der GridLayout haben die Größe der größten childview eingefügt (für diese Spalte / Zeile zugeordnet).

    Dieses Ganze ist eine sehr dynamische Struktur. Die Anzahl der Spalten und Zeilen wird automatisch neu berechnet. Denken Sie daran, die childviews mit layout_row und layout_column zu markieren und eventuell die gewünschte Größe einzustellen – nach den oben genannten Regeln zum Beispiel:

      <EditText android:layout_width="200dp" android:layout_height="wrap_content" android:inputType="text" android:id="@+id/editText1" android:layout_row="2" android:layout_column="8" /> 

    So können Sie durch Ändern der Breite der childviews die Spaltenbreite des GridLayouts steuern. Sie können das folgende Beispiel studieren:

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <HorizontalScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="0dp" android:layout_marginTop="0dp" android:background="#f3f3f3"> <GridLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:background="#a3ffa3"> <Button android:layout_width="100dp" android:layout_height="wrap_content" android:text="Col 1,Row4" android:id="@+id/button" android:layout_gravity="center" android:layout_row="4" android:layout_column="1" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Start.." android:layout_column="4" android:layout_row="8" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Col 6, Row 1." android:id="@+id/button2" android:layout_row="1" android:layout_column="6" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Col 6, Row 2." android:id="@+id/button3" android:layout_row="2" android:layout_column="6" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button4" android:layout_gravity="center" android:layout_column="9" android:layout_row="3" /> <TextView android:layout_width="300dp" android:layout_height="wrap_content" android:id="@+id/textView" android:layout_row="3" android:layout_column="8" /> <CheckBox android:layout_width="250dp" android:layout_height="wrap_content" android:text="New CheckBox" android:id="@+id/checkBox" android:layout_row="6" android:layout_column="7" android:textColor="#212995" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="text" android:ems="10" android:id="@+id/editText" android:layout_row="5" android:layout_column="8" android:textColor="#952a30" /> </GridLayout> </HorizontalScrollView> </LinearLayout> 

    Ich hoffe das war hilfreich. Freundliche Grüße 🙂

    Darüber hinaus habe ich festgestellt, dass die oben kann tatsächlich schwierig, um programmgesteuert zu erreichen. Sie könnten erwägen, die GridLayout zu GridView oder TableLayout zu ändern, die einfacher zu handhaben sind. Um mehr darüber zu erfahren, überprüfen Sie bitte diese Seiten:

    1. GridLayout.LayoutParams
    2. Gitterstruktur
    3. Gridlayout-not-gridview-how-to-stretch-all-children-gleichmäßig

    Sie sollten Ihre ändern

     <HorizontalScrollView android:layout_width="match_parent" android:layout_height="match_parent" > 

    Und füge android:fillViewPort="true" . Dies sollte den Inhalt strecken, um den Bildschirm zu füllen (dh das Ansichtsfenster).

    TextView reps = new TextView(this); android.support.v7.widget.GridLayout.LayoutParams repsLayoutParam = (LayoutParams) reps.getLayoutParams(); repsLayoutParam.setGravity(Gravity.FILL_HORIZONTAL | Gravity.FILL_VERTICAL);

    Dies schafft eine Textansicht, die in einem Rasterlayout platziert wird – die Schwerkraft auf FILL_HORIZONTAL einstellen und auch FILL_VERTICAL sollte sicherstellen, dass es die Zelle im Layout füllt.

    Weil Rasteransicht eigene Rolle hat.

    Wenn Sie die Ansichten hinzufügen, denken Sie daran, die richtige LayoutParams der Ansicht zuerst hinzuzufügen.

    Mabye ist es wegen der fehlenden

     </ScrollView> 

    Am Ende.

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.