10

Hat jemand die Support-Bibliothek bekommen, um ein Gitter-Layout in Android 2 korrekt zu rendern? Statt 2 Zeilen und Spalten wir eine einzige Zeile auf dem Bildschirm bekommen und diesen Fehler in der logcat Ausgabe sehen: Android Gridlayout kann nicht Methode finden android.support.v7.widget.ViewGroup.onChildVisibilityChangedGridLayout von Support-Bibliothek zeigt nicht 2 Zeilen auf Android 2, onChildVisibilityChanged Fehler

Das gleiche genaue Layout ist Arbeiten an Android4 -> ICS, wenn ich das Layout-Tag ändern von android.support.v7.widget.GridLayout zu GridLayout

Könnte dies ein Problem mit dem Setup sein? Ich habe das gridlayout_v7-Bibliotheksprojekt auf der Android-Registerkarte meiner Eclipse-Projekteigenschaften und das v.13-jar befindet sich im Build-Pfad.

Das XML-Layout, das fehlschlägt, wird unten eingefügt. Ich habe die Layoutzeilen und -spalten explizit in den Bildschaltflächen-Tags hinzugefügt, um das Problem zu umgehen. Wenn jemand ein funktionierendes Beispiel hat, das auf Android 2 mit der Support-Bibliothek läuft, bitte teilen.

<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:columnCount="2" android:rowCount="2" 
android:gravity="center_vertical" 
android:layout="@drawable/bg_test_main" > 

<ImageButton android:id="@+id/btnSentence" 
android:layout_row="0" 
android:layout_column="0" 
android:src="@drawable/testa_btn" 
android:contentDescription="@string/spin_fill_in" 
android:background="@android:color/transparent" 
/> 
<ImageButton android:id="@+id/btnAudio" 
android:layout_row="0" 
android:layout_column="1" 
    android:src="@drawable/testb_btn" 
android:contentDescription="@string/audio_quiz" 
android:background="@android:color/transparent" 
/> 
<ImageButton android:id="@+id/btnPickWord" 
android:layout_row="1" 
android:layout_column="0" 
android:src="@drawable/testc_btn" 
android:background="@android:color/transparent" 
android:contentDescription="@string/def_pick_word" /> 

<ImageButton android:id="@+id/btnPickDef" 
android:layout_row="1" 
android:layout_column="1" 
android:src="@drawable/testd_btn" 
android:background="@android:color/transparent" 
android:contentDescription="@string/pick_def" /> 

</android.support.v7.widget.GridLayout> 

Antwort

36

Ich denke, Sie haben vermisst, XML-Namespace hinzuzufügen. Bitte korrigieren Sie es auf diese Weise:

<android.support.v7.widget.GridLayout 
    xmlns:grid="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
... 
</android.support.v7.widget.GridLayout> 

und vergessen Sie nicht Attribute von Kompatibilität mit Gridlayout XML-Namespace verwendet, um das Präfix zu:

<ImageButton android:id="@+id/btnSentence" 
    grid:layout_row="0" 
    grid:layout_column="0" 
    ... 
/> 

Hoffe, es hilft ...

+0

Dies ist ein gute Antwort! Danke Tomas! Haben Sie einen Link zu einer Dokumentation? Ich habe viel gesucht, bevor ich diesen Beitrag erstellt habe. Das Layout hat jetzt 2 Zeilen. Das nächste Problem besteht darin, das Raster mit gleichen Rändern auf jeder Seite sowie oben und unten zentriert zu bekommen. Hast du auch eine Lösung dafür? – Beth

+0

@Beth sollten Sie diese Antwort überprüfen, wenn er Ihnen antwortete – confucius

+0

ah - berühren Sie das Häkchen ... Ich habe versucht, herauszufinden, wenn diese Antwort kam. Danke an Sie @Nammari – Beth