Wenn Sie adaptive Ressourcen verwenden: Stellen Sie sicher, dass Sie im Ressourcenordner /res
folgende Ordner haben: values-land
und values-port
. Fügen Sie in diesen beiden Ordnern eine Ressourcendatei hinzu, nennen wir sie integers.xml.
In /values-land/integers.xml haben Sie mindestens:
%Vor%während für values-port / integers.xml :
%Vor%Das Layout ändert sich zu:
%Vor%Beachten Sie das Vorhandensein von @ integer / grid_rows
Ich hatte dieses Problem und die Antwort des Schützlings war sehr hilfreich, aber ich denke, ich kann noch einige Details hinzufügen. Wenn Sie in AndroidStudio die Verzeichnisansicht auf "Projekt" setzen (damit Sie Ihre neuen Verzeichnisse sehen können) und klicken Sie mit der rechten Maustaste auf "res", um ein neues Ressourcenverzeichnis zu erstellen. Erstellen Sie zwei neue Verzeichnisse, "values-port" und "values-land", jeweils als Typ value.
Fügen Sie dann in values-land ein ganzzahliges Element hinzu:
%Vor%und in values-port, fügen Sie ein Ganzzahlelement hinzu:
%Vor%Jetzt in Ihrem Gridview-Layout, anstatt Ihre numColumn hart zu codieren:
%Vor%Das ist im Wesentlichen die Lösung eines Scharfschützen (danke Gunar!), aber es fügt einige Details hinzu, die ich auf dem Weg entdeckt habe. Zum Beispiel konnte ich die Res-Verzeichnisse nicht sehen, die ich machte, bis ich in die Projektansicht wechselte und es bereits einen Integer-Ressourcentyp gibt, so dass wir die Spalten nicht als Element deklarieren müssen und dann den Typ auf Integer setzen müssen. (Übrigens: Ich liebe das Android-XML-Tool!)