Kaip išjungti kraštovaizdžio režimą "Android"?

Kaip išjungti kai kurių "Android" programos rodinių kraštovaizdžio režimą?

Sprendimas

Pridėkite android:screenOrientation="portrait" prie veiklos į AndroidManifest.xml. Pavyzdžiui:

EDIT: Kadangi tai tapo itin populiariu atsakymu, jaučiuosi labai kaltas, nes priverstinis portreto nustatymas retai būna teisingas problemų, kurioms jis dažnai taikomas, sprendimas.
Pagrindiniai priverstinio portreto naudojimo trūkumai:

  • Tai neatleidžia jūsų nuo būtinybės galvoti apie veiklą gyvavimo ciklo įvykių ar tinkamo būsenos išsaugojimo/atkūrimo. Yra daugybė dalykų, kurie, be programėlės sukimosi, gali sukelti veiklos sunaikinimą / atkūrimą, įskaitant neišvengiamus dalykus, pavyzdžiui, daugiaprogramį darbą. Nėra jokių trumpųjų kelių; išmokite naudoti paketus ir retainInstance fragmentus.
  • Nepamirškite, kad skirtingai nei gana vienoda "iPhone" patirtis, kai kuriuose įrenginiuose portretinė orientacija nėra aiškiai populiari. Kai naudotojai naudojasi įrenginiais su aparatinėmis klaviatūromis ar žaidimų kilimėliais, pavyzdžiui, "Nvidia Shield", Chromebook, sulankstomaisiais arba Samsung DeX, priverstinis portretinės orientacijos nustatymas gali apriboti jūsų programėlių naudojimo patirtį arba tapti milžinišku naudojimosi sunkumu. Jei jūsų programėlė neturi svarių UX argumentų, dėl kurių kitų orientacijų palaikymas sukeltų neigiamą patirtį, tikriausiai nereikėtų versti naudoti kraštovaizdžio. Kalbu apie tokius dalykus, kaip "tai yra kasos aparato programa, skirta vienam konkrečiam planšetinio kompiuterio modeliui, visada naudojamam fiksuotame aparatūros doke."

Taigi dauguma programų turėtų leisti telefono jutikliams, programinei įrangai ir fizinei konfigūracijai pačiai nuspręsti, kaip naudotojas nori sąveikauti su jūsų programa. Tačiau apie keletą atvejų vis dėlto galite pagalvoti, jei jūsų naudojimo atveju jūsų netenkina numatytoji jutiklio orientacijos elgsena:

  • Jei pagrindinis jūsų rūpestis yra atsitiktinis orientacijos pasikeitimas veiklos viduryje, su kuriuo, jūsų manymu, įrenginio jutikliai ir programinė įranga nelabai susidoros (pavyzdžiui, pakreipimu pagrįstame žaidime), apsvarstykite galimybę palaikyti kraštovaizdžio ir portreto orientaciją, bet naudoti nesensor orientaciją. Dauguma planšetinių kompiuterių dėl to bus kraštovaizdžio, o dauguma telefonų - portreto, tačiau vis tiek nerekomenduočiau to daryti daugumai "normalių" programų (kai kurie naudotojai tiesiog mėgsta rašyti telefonų programine klaviatūra kraštovaizdžio režimu, o daugelis planšetinių kompiuterių naudotojų skaito portretiniu režimu - ir jūs turėtumėte jiems leisti tai daryti).
  • Jei dėl kokių nors priežasčių vis tiek reikia priverstinai naudoti portretą, sensorPortrait gali būti geriau nei portretas "Android 2.3+"; tai leidžia naudoti aukštyn kojomis apverstą portretą, kuris gana dažnai naudojamas planšetiniuose kompiuteriuose.
Komentarai (12)

Kol neperskaičiau šio įrašo, nežinojau apie AndroidManifest.xml failo perjungiklį, todėl savo programose naudojau jį:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);     //  Fixed Portrait orientation
Komentarai (3)

Kataloge /platform/android sukūrėme AndroidManifest.xml (nukopijavę jį iš sugeneruoto). Tada prie VISŲ veiklos elementų pridėkite android:screenOrientation="portret".

Komentarai (0)