Verschiedene Fragmente für unterschiedliche Orientierung

9

Ich habe eine Aktivität in einer Tablet-App und möchte je nach Ausrichtung verschiedene Fragmente anzeigen. Ich dachte, der einfachste Weg, dies zu tun, bestand darin, zwei verschiedene Layout-XML-Dateien zu definieren, eine für Querformat und eine für Hochformat. Mit anderen Worten habe ich /layout/home.xml, das wie folgt aussieht:

%Vor%

Und dann in /layout-port/home.xml:

%Vor%

Wenn ich es laufe, kann ich in der Landschaft anfangen und zum Porträt gehen, und alles ist in Ordnung. Wenn ich jedoch von Hochformat zu Querformat gehe, stürzt die App mit einer android.content.res.Resources $ NotFoundException ab, deren Ressourcennummer gleich "frag3" ist. Das ist richtig, es sucht nach Frag3, wenn man in die Landschaft geht, und in diesem Modus gibt es kein Frag3. Dies geschieht während des Activity.onCreate-Stacks, also bevor irgendein Code eine Chance hat, die App zum Absturz zu bringen.

Sollen Fragmente nicht so funktionieren? Muss ich stattdessen eine FragmentTransaction verwenden?

    
michaelg 07.03.2011, 22:07
quelle

1 Antwort

1

Es ist schwer zu sagen, ohne den Code zu sehen - Resources.NotFoundException bedeutet jedoch normalerweise, dass Sie versucht haben, ein Asset (R.layout.xx, R.drawable.xx, usw.) falsch nachzuschlagen.

Das heißt, ich habe versucht, eine kleine App mit Ihrem Layout-XML zu schreiben, und der Compiler schrie mich an, Zeichenfolgen als IDs hart zu codieren, wenn ich Ihren XML-Code kopierte, um ihn zu testen. Versuchen Sie, die Werte des android: id-Attributs wie folgt zu ändern:

android: id="android: id=" @ + id / frag1 "

das könnte das Problem beheben.

    
Alexander Lucas 10.03.2011 21:25
quelle