Android + XAMARIN + Erzwingt, dass der Bildschirm im Modus "Porträt" bleibt (mit AndroidManifest)

9

Ich habe einige der Antworten zu diesem Problem hier gelesen, aber irgendwie bekomme ich es nicht zum Laufen.

Meine AndroidManifest.xml sieht so aus:

%Vor%

Ich kann immer noch in den Querformat-Modus wechseln und da das Layout im Querformat ziemlich hässlich wird, möchte ich das vermeiden. Hilfe sehr geschätzt.

Könnte wichtig sein: Ich entwickle die App mit dem neuesten Xamarin

    
fbueckle 13.04.2016, 12:15
quelle

6 Antworten

8

Sie können Ihre activity mit einem Klassenattribut als portrait kennzeichnen:

%Vor%

Dies ist der einzige Weg, der die Aktivität aufgrund von automatisch generierten Klassennamen, die von Xamarin erzeugt werden, immer auf Hochformat basiert, ohne Ihre Klassennamen hart zu codieren.

Aktualisierung:

Ich habe viele IM-Fragen zu diesem Q / A bekommen, also erweitere ich die Antwort darauf, warum die Manifest-Methode nicht funktioniert.

Xamarin generiert automatisch einen vollständig qualifizierten Klassennamen für Ihre Aktivitäten, denen Ihre Aktivitätsklasse NICHT das Attribut Name zugewiesen hat.

Wenn Sie sich ein signiertes / generiertes Manifest von einem Xamarin Android .apk ansehen  Sie sehen einen Klassennamen wie:

%Vor%

Da Sie Ihr Manifest mit einer Punktnamen-Klassenkennung versehen, erhält der Paketname das vorangestellte Präfix:

%Vor%

Die vollqualifizierten Klassennamen stimmen nicht überein, da ein Klassenname, der mit einem Punkt beginnt, ein Präfix mit dem Paketnamen erhält und diese niemals mit dem automatisch generierten Klassennamen übereinstimmen.

Sie können diesen automatisch generierten vollständig qualifizierten Klassennamen umgehen, indem Sie das Name -Element in Ihrem Activity -Attribut verwenden, um zu verhindern, dass der automatisch generierte Name erstellt wird, d. h.

%Vor%

Nehmen Sie nun an, Ihr Paketname lautet "com.sushihangover.playscriptstarling", und verwenden Sie dabei:

%Vor%

in Ihrem Manifest funktioniert wie der Klassenname, wenn er einmal im Manifest erweitert wurde und mit dem in Ihrem Code übereinstimmt.

Das Problem ist dann, wenn sich Ihr Paketname ändert, brechen Sie Ihre dot class names in Ihrem Manifest. Die Verwendung von ScreenOrientation = ScreenOrientation.Portrait ist also eine sauberere Methode zum Zuweisen von Orientierung, die nicht erfordert, dass Sie bei jeder Ihrer Aktivitäten einen vollständig qualifizierten Klassennamen zuweisen, und bricht nicht ab, wenn sich der Paketname ändert.

Hinweis: Das Name -Element innerhalb des Activity -Klassenattributs unterstützt nicht dot class names und erfordert die Verwendung eines vollständig erweiterten Klassennamens. Dies wurde an Xamarin als Feature-Anfrage gesendet ...

    
SushiHangover 13.04.2016, 12:20
quelle
3

Änderung der Android-Bildschirmausrichtung (Hochformat- Querformat)

1. Bildschirmausrichtung in Android sperren

Ihr Bildschirm wird immer im Hochformat angezeigt, wenn Sie Ihr Gerät drehen, werden keine Änderungen für die aktuelle Aktivität übernommen.

%Vor%

Wenn Sie die gesamten Anwendungsfenster sperren möchten. Sie sollten den obigen Code in alle Aktivitäten der Anwendung schreiben.

%Vor%

2. Sperrt die Bildschirmausrichtung (Bildschirmrotation) programmgesteuert in Android

Diese Option ist wenig kompliziert. Was wir tun müssen, ist, dass wir das Ereignis der Bildschirmausrichtungänderung (Rotationsänderung) erhalten, dann sowohl für Querformat- als auch Hochformat-Ereignis, werden wir Ätherlandschafts- oder -portraitmodus gemäß unserer Anforderung einstellen. Unten ist der Code. Wir stellen den Hochformat-Modus immer ein, so dass der Bildschirm immer im Hochformat bleibt.

%Vor%

3. Ändern Sie die Bildschirmausrichtung programmgesteuert jederzeit in Android

%Vor%

4. So erhalten Sie die Bildschirmausrichtung zur Laufzeit

%Vor%

5. Finden Sie das Ereignis zur Änderung der Bildschirmausrichtung in Android

%Vor%     
Venkatesh Selvam 13.04.2016 12:37
quelle
1
%Vor%

Verwenden Sie die obige Codierung add android:screenOrientation="portrait" in <activity> tab.

    
Praveen Kumar 13.04.2016 12:18
quelle
0

Fügen Sie diese Zeile hinzu,

%Vor%     
Pradeep Gupta 13.04.2016 12:19
quelle
0

Versuchen Sie Folgendes:

%Vor%     
Slobodan Antonijević 13.04.2016 12:19
quelle
0

Benutze dies

%Vor%

ODER

Wenn Sie den Bildschirm Ausrichtung bei Laufzeit ändern möchten, fügen Sie Folgendes hinzu:

%Vor%     
Rakshit Nawani 13.04.2016 12:33
quelle