Ako môžem vypnúť režim na šírku pre niektoré zobrazenia v aplikácii pre Android?
Pridajte android:screenOrientation="portrait"
do aktivity v súbore AndroidManifest.xml. Napríklad:
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
EDIT: Keďže sa táto odpoveď stala superpopulárnou, cítim sa veľmi previnilo, pretože vynútenie portrétu je zriedkakedy správnym riešením problémov, na ktoré sa'často aplikuje.
Hlavné výhrady pri vynútenom portréte:
retainInstance
.Väčšina aplikácií by teda mala nechať senzory telefónu, softvér a fyzickú konfiguráciu, aby samy rozhodli o tom, ako chce používateľ s vašou aplikáciou komunikovať. Niekoľko prípadov, nad ktorými by ste sa však predsa len mali zamyslieť, ak'nie ste spokojní s predvoleným správaním orientácie senzorov
vo vašom prípade použitia:
nosensor
. To vynúti na väčšine tabletov písanie na šírku a na väčšine telefónov písanie na výšku, ale aj tak by som to neodporúčal pre väčšinu "normálnych" aplikácií (niektorí používatelia jednoducho radi píšu na telefónoch na šírku na softvérovej klávesnici a mnohí používatelia tabletov čítajú na výšku - a vy by ste im to mali umožniť).sensorPortrait
môže byť pre Android 2.3+ lepší ako portrait
; umožňuje zobrazenie na výšku hore nohami, čo je pri používaní tabletov pomerne bežné.Až do prečítania tohto príspevku som nevedel o prepínači súborov AndroidManifest.xml
, preto som ho vo svojich aplikáciách použil namiesto neho:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Fixed Portrait orientation
V adresári <apphome>/platform/android
vytvorte súbor AndroidManifest.xml
(skopírujte ho z vygenerovaného).
Potom pridajte android:screenOrientation=
"portrait
" do VŠETKÝCH prvkov aktivity.