Android - mode disable na šířku?

hlasů
781

Jak mohu zakázat režimu na šířku pro některé názory v mé aplikace pro Android?

Položena 24/02/2009 v 16:29
zdroj uživatelem
V jiných jazycích...                            


32 odpovědí

hlasů
1k

Přidat android:screenOrientation="portrait"k aktivitě v AndroidManifest.xml. Například:

<activity android:name=".SomeActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait" />

EDIT: Vzhledem k tomu, stala super-populární odpověď, cítím se velmi provinile, protože nutí portrét je zřídka správné řešení problémů, to je často aplikována.
Hlavní výhrady s nuceným portrét:

  • To vás nezbavuje toho, aby musel myslet na životní cyklus akcí aktivity či správně ukládání / obnovení stavu. Existuje spousta věcí, kromě rotace aplikace, která může vyvolat destrukci činnost / rekreaci, včetně nevyhnutelných věcí, jako je multitasking. Neexistují žádné zkratky; naučit se používat svazky a retainInstancefragmenty.
  • Mějte na paměti, že na rozdíl od poměrně rovnoměrné zkušeností iPhone, existuje mnoho zařízení, kde portrétu není jednoznačně populární orientace. Kdy jsou uživatelé na zařízeních s hardwarové klávesnice nebo herní podložky a la Droid 1-4, Xperia Play nebo Nvidia štítu, nutí portrét může vaše aplikace obří použitelnost hádka (zejména na štít). Pokud aplikace nemá velmi specifický případ použití, která by vedla k úplně negativní zkušenosti pro podporu jiných směrů, asi byste měli nutit krajinu. Mluvím o věcech jako „to je ovládací aplikace vzdáleného pro telefon s IR Blaster pouze na jedné straně zařízení“, nebo „to je pokladna app pro jeden konkrétní model tabletu vždy používá v pevné hardware dok.“

Takže většina aplikací by měl jen nechat telefon senzory, software a fyzická konfigurace, aby jejich vlastní rozhodnutí o tom, jak si uživatel přeje komunikovat s vaší aplikací. Několik případů stále můžete chtít přemýšlet o tom, i když, pokud nejste spokojeni s výchozí chování sensororientace ve svém use case:

  • Pokud je váš hlavní starostí je náhodná orientace se změní v polovině aktivity, které si myslíte, že senzory a software Přístroj bude neumí poradit s dobře (například ve hře náklonu-based) zvážit podporu krajinu a portrét, ale za použití nosensorpro orientaci. To přinutí terén většině tablet a portrét na většině telefonů, ale pořád bych nedoporučoval to u většiny „normálních“ aplikací (někteří uživatelé stejně jako psát v krajině softkeyboard na svých telefonech, a mnoho uživatelů tabletů přečíst na výšku - a měli byste nechat).
  • Pokud jste ještě potřebovat vynutit portrét z nějakého důvodu, sensorPortraitmůže být lepší než portraitpro Android 2.3 nebo vyšší; to umožňuje vzhůru nohama na výšku, což je docela obyčejný v užívání tablet.
Odpovězeno 24/02/2009 v 18:04
zdroj uživatelem

hlasů
95

Nebyl jsem si vědom AndroidManifest.xmlpřepínače souboru, dokud přečtení tohoto příspěvku, takže ve svých aplikacích jsem to používá místo:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);     //  Fixed Portrait orientation
Odpovězeno 18/10/2010 v 15:53
zdroj uživatelem

hlasů
1

V <apphome>/platform/androidadresáři vytvořeném AndroidManifest.xml(zkopírováním z vytvořeného jednoho). Pak přidáme android:screenOrientation=portrait“ pro všechny prvky činnosti.

Odpovězeno 19/09/2011 v 11:46
zdroj uživatelem

hlasů
1

přidat androida: screenOrientation = „portrét“ v AndroidManifest.xml souboru.example <activity android:name=".MapScreen" android:screenOrientation="portrait"></activity>

Odpovězeno 01/02/2012 v 08:42
zdroj uživatelem

hlasů
9

Pokud chcete, uživatelských nastavení,

pak bych doporučil setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

Můžete změnit nastavení z menu nastavení.

Žádám to, protože moje časovače musí odpovídat tomu, co je na obrazovce, a otáčení obrazovky zničí současnou aktivitu.

Odpovězeno 10/02/2012 v 05:46
zdroj uživatelem

hlasů
3

použití

android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait" 
Odpovězeno 14/05/2012 v 17:42
zdroj uživatelem

hlasů
2
<android . . . >
    . . .
    <manifest . . . >
        . . .
        <application>
            <activity android:name=".MyActivity" 
                android:screenOrientation="portrait" 
                android:configChanges="keyboardHidden|orientation">
            </activity>
        </application>
    </manifest>
</android>
Odpovězeno 04/09/2012 v 07:30
zdroj uživatelem

hlasů
31

Přidejte toto android:screenOrientation="portrait"do vašeho souboru manifestu, kde deklarovat svou aktivitu takhle

<activity android:name=".yourActivity"
    ....
    android:screenOrientation="portrait" />

Chcete-li provést pomocí kódu Java zkusit

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

Než zavoláte setContentViewmetodu pro danou činnost v onCreate().

Doufat, že to pomůže a snadno pochopitelné pro všechny ...

Odpovězeno 27/09/2012 v 10:47
zdroj uživatelem

hlasů
0

V naději, že na pomoc někoho jiného, ​​následující atribut na aktivitu AndroidManifest.xml je vše, co potřebujete:

android: configChanges = "orientace"

Takže plná aktivita uzel:

<activity android:name="Activity1" 
    android:icon="@drawable/icon" 
    android:label="App Name" 
    android:configChanges="orientation">
Odpovězeno 17/07/2013 v 23:53
zdroj uživatelem

hlasů
4

Přidejte následující úryvek ve svém manifestu souboru.

<activity android:name=".yourActivity"
          ....
          android:screenOrientation="portrait"/>

Tato podpora pouze v režimu na výšku

Odpovězeno 16/08/2013 v 11:11
zdroj uživatelem

hlasů
19

Mnoho odpovědí zde navrhují použít "portrait"v souboru AndroidManifest.xml. To se může zdát jako dobré řešení - ale jak je uvedeno v dokumentaci, kterou vyčleněním zařízení, která mohou mít pouze krajinu. Ty jsou také nutí určitá zařízení (které pracují nejlépe v krajině), jít do portrétu, nedostávají správnou orientaci.

Můj návrh je použít "nosensor"místo. Toto opustí zařízení, aby využila svého výchozího preferovanou orientaci, nebude blokovat jakýkoliv nákup / stažení na Google Play, a zajistí senzor není zkazit váš (NDK, v mém případě) hru.

Odpovězeno 21/08/2013 v 15:41
zdroj uživatelem

hlasů
5

Stačí přidat tento atribut ve své činnosti značce.

 android:screenOrientation="portrait"
Odpovězeno 01/10/2013 v 08:00
zdroj uživatelem

hlasů
5

byste měli změnit android:screenOrientation="sensorPortait"v AndroidManifest.xml

Odpovězeno 03/01/2014 v 07:04
zdroj uživatelem

hlasů