1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Probleme mit der Ausrichtung der App

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Nebukad, 09.11.2011.

  1. Nebukad, 09.11.2011 #1
    Nebukad

    Nebukad Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    1
    Registriert seit:
    26.04.2011
    Moin,

    ich habe ein Problem mit der Ausrichtung der App beim Starten und komme da irgendwie nicht weiter.

    Die App soll in "SCREEN_ORIENTATION_REVERSE_PORTRAIT" ausgeführt werden. Dies klappt auch wunderbar, wenn die App aus dieser Ausrichtung heraus gestartet wird. Startet man allerdings aus dem Querformat heraus, dann stürzt die App gleich ab, weil es natürlich keine Buttons im Layout des Querformats gibt und er dann beim Setzen der onClickListener eine NullpointerException wirft. (Das Querformat benutze ich momentan nicht, die XML ist zwar da, aber nicht auf dem aktuellen Stand und wird eigentlich auch nirgendwo aufgerufen, diese soll vielleicht später mal hinzukommen).

    Im Manifest der App steht für die Activity android:screenOrientation="reversePortait".
    Beim Start der App wird zudem nochmal this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); aufgerufen und dann erst setContentView(R.layout.main) aufgerufen. (Andersherum macht auch keinen Unterschied).

    MfG
     
  2. Gastonet, 09.11.2011 #2
    Gastonet

    Gastonet Erfahrener Benutzer

    Beiträge:
    203
    Erhaltene Danke:
    22
    Registriert seit:
    05.08.2010
    Wenn du sowieso nur den Portrait-Modus benötigst, dann kannst du den Gravitationssensor auch "abschalten" und den Portrait Modus erzwingen

    Einfach folgenden Code in die onCreate Anweisung einfügen

    Code:
    this.setRequestedOrientation(
    				ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    Das hier kann dir möglicherweise hilfreich sein.
     
  3. Nebukad, 09.11.2011 #3
    Nebukad

    Nebukad Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    1
    Registriert seit:
    26.04.2011
    Genau das mach ich doch, allerdings schmiert die App ab, wenn das Gerät aus dem Querformat heraus die App startet.
     
  4. Gastonet, 09.11.2011 #4
    Gastonet

    Gastonet Erfahrener Benutzer

    Beiträge:
    203
    Erhaltene Danke:
    22
    Registriert seit:
    05.08.2010
    Ich habe das gerade getestet und bei mir schmiert nichts ab und das Layout wird im Portraitmodus geladen

    Vielleicht den "Bildschirmausrichtungscode" der Seite übernehmen und mit deinem ersetzen?
     
  5. swordi, 10.11.2011 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    "schmiert ab", ist keine phrase, die man im entwickler forum sehen will :)

    zeig den logcat, dann kann dir geholfen werden.
     
  6. Nebukad, 10.11.2011 #6
    Nebukad

    Nebukad Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    1
    Registriert seit:
    26.04.2011
    LogCat wirft eine NullPointerException, weil die App den Button beim Setzen des OnClickListeners nicht findet, da dieser im Layout fürs Querformat nicht existiert. Ich hab jetzt das layout-land einfach komplett aus dem Projekt entfernt, obwohl ich das nicht wollte, da ich dieses später ggf. noch nutzen wollte. Ohne layout-land Ordner funktioniert das ganze jetzt problemlos.

    Also muss die App das Querformat trotzdem beim Start laden (auch wenn nicht sichtbar), wenn man aus dem Querformat die App startet, obwohl eigentlich im Manifest und in der OnCreate-Methode das Portraitformat festgeschrieben ist, und erst danach das Hochformat.
     
  7. swordi, 10.11.2011 #7
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    naja ich denke das liegt auf der hand ( meine vermutung halt )

    du hast dein gerät im landscape modus, startest die app. erst in deinem oncreate wird auf portrait mode gewechselt.

    1) wenn du nur portrait hast, machts keinen sinn einen layout-land ordner zu haben :)

    2) versuch mal die screenorientation direkt im manifest zu setzen. eventuell wird das dann vorher schon richtig gemacht.
     

Diese Seite empfehlen