ඇන්ඩ්‍රොයිඩ් හි භූ දර්ශන ප්‍රකාරය අක්‍රීය කරන්නේ කෙසේද?


947

මගේ ඇන්ඩ්‍රොයිඩ් යෙදුමේ සමහර දර්ශන සඳහා භූ දර්ශන මාදිලිය අක්‍රිය කරන්නේ කෙසේද?


3
ඔබ ස්වයංක්‍රීයව භ්‍රමණය වන අංගය අක්‍රීය කිරීමට උත්සාහ කරනවාද? ඔබගේ ආලේඛ්‍ය දර්ශන තුළ ඔබ කැමති දිශානතිය සැකසීමට උත්සාහ කරන්න? http://code.google.com/android/reference/android/R.styleable.html#AndroidManifestActivity_screenOrientation
adam

Answers:


1657

android:screenOrientation="portrait"AndroidManifest.xml හි ක්‍රියාකාරකමට එක් කරන්න . උදාහරණයක් වශයෙන්:

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

සංස්කරණය කරන්න: මෙය සුපිරි ජනප්‍රිය පිළිතුරක් බවට පත්ව ඇති හෙයින්, සිතුවමට බල කිරීම කලාතුරකින් එය නිරන්තරයෙන් යොදන ගැටලුවලට නිවැරදි විසඳුම බැවින් මට ඉතා වරදකාරී හැඟීමක් දැනේ.
බලහත්කාරයෙන් ආලේඛ්‍ය චිත්‍රයක් සහිත ප්‍රධාන අවවාද:

  • ක්‍රියාකාරකම් ජීවන චක්‍රීය සිදුවීම් ගැන සිතීම හෝ තත්වය නිසි ලෙස සුරැකීම / ප්‍රතිෂ් oring ාපනය කිරීම මෙයින් ඔබව වළක්වන්නේ නැත. යෙදුම් භ්‍රමණය හැරුණු විට ක්‍රියාකාරකම් විනාශ කිරීම / විනෝදාස්වාදය අවුලුවන බොහෝ දේ ඇත, බහු කාර්යයන් වැනි නොවැළැක්විය හැකි දේවල්ද ඇතුළුව. කෙටිමං නොමැත; මිටි භාවිතා කිරීමට ඉගෙන ගන්න සහretainInstance කොටස් .
  • තරමක් ඒකාකාරී අයිෆෝන් අත්දැකීම් මෙන් නොව, සිතුවම් පැහැදිලිවම ජනප්‍රිය දිශානතිය නොවන සමහර උපාංග ඇති බව මතක තබා ගන්න. පරිශීලකයන් දෘඩාංග යතුරු පුවරු හෝ ක්රීඩාව පෑඩ් සමඟ උපාංගයන් ලා මත Nvidia පළිහ වන විට, මත Chromebooks මත foldables , හෝ Samsung බොන්න එනවා , චිත්රයක් බල ඔබගේ යෙදුම අත්දැකීම් හෝ සීමා හෝ යෝධ නමුත් නෙට්බුක් කරදරයකින් කරන්න පුළුවන්. ඔබගේ යෙදුමට වෙනත් දිශානතීන්ට සහය දැක්වීම සඳහා experience ණාත්මක අත්දැකීමක් ලබා දෙන ශක්තිමත් යූඑක්ස් තර්කයක් නොමැති නම්, ඔබ බොහෝ විට භූ දර්ශනයට බල නොකළ යුතුය. මම මේ කතා කරන්නේ "මෙය ස්ථාවර දෘඩාංග තටාකයක සෑම විටම භාවිතා කරන එක් විශේෂිත ටැබ්ලටයක් සඳහා මුදල් රෙජිස්ටර් යෙදුමකි."

එබැවින් බොහෝ යෙදුම් මඟින් දුරකථන සංවේදක, මෘදුකාංග සහ භෞතික වින්‍යාසය මඟින් පරිශීලකයාට ඔබේ යෙදුම සමඟ අන්තර් ක්‍රියා කිරීමට අවශ්‍ය ආකාරය පිළිබඳව ඔවුන්ගේම තීරණයක් ගැනීමට ඉඩ දිය යුතුය. sensorඔබේ භාවිතයේ දිශානතියේ පෙරනිමි හැසිරීම ගැන ඔබ සතුටු නොවන්නේ නම්, ඔබට තවමත් සිතා බැලීමට අවශ්‍ය අවස්ථා කිහිපයක් :

  • ඔබගේ ප්‍රධාන අවධානය අහම්බෙන් දිශානතිය වෙනස් වන්නේ නම්, උපාංගයේ සංවේදක සහ මෘදුකාංග හොඳින් ක්‍රියා නොකරනු ඇතැයි ඔබ සිතන (උදාහරණයක් ලෙස, ඇලවීම මත පදනම් වූ ක්‍රීඩාවකදී) භූ දර්ශනය සහ ආලේඛ්‍ය චිත්‍රයට සහය දැක්වීම ගැන සලකා බලන්න, නමුත් nosensorදිශානතිය සඳහා භාවිතා කිරීම. මෙය බොහෝ ටැබ්ලට් පරිගණකවල භූ දර්ශනය සහ බොහෝ දුරකථන වල ආලේඛ්‍ය චිත්‍ර සඳහා බල කරයි, නමුත් මම තවමත් බොහෝ "සාමාන්‍ය" යෙදුම් සඳහා මෙය නිර්දේශ නොකරමි (සමහර පරිශීලකයින් ඔවුන්ගේ දුරකථනවල භූ දර්ශන මෘදුකාංග පුවරුව ටයිප් කිරීමට කැමතියි, සහ බොහෝ ටැබ්ලට් භාවිතා කරන්නන් පෝට්රේට් වලින් කියවනු ලැබේ - සහ ඔබ ඔවුන්ට ඉඩ දිය යුතුයි).
  • කිසියම් හේතුවක් නිසා ඔබට තවමත් සිතුවමක් බල කිරීමට අවශ්‍ය නම් , ඇන්ඩ්‍රොයිඩ් 2.3+ sensorPortraitට වඩා හොඳ විය හැකිය portrait; මෙය ටැබ්ලටයේ බහුලව භාවිතා වන උඩු යටිකුරු ආලේඛ්‍ය චිත්‍රයක් සඳහා ඉඩ ලබා දේ.

55
සමස්ත යෙදුම සඳහාම එය කළ හැකිය. මෙය පරීක්ෂා කරන්න stackoverflow.com/a/9784269/1300707
ලියම් ජෝර්ජ් බෙට්ස්වර්ත්

1
තවත් චිත්‍රයක් ඇති බව මම දුටුවෙමි: sensPortait. සංවේදක පෝටයිට් සහ ආලේඛ්‍ය චිත්‍රය අතර ඇති වෙනස කුමක්ද?
ජැකී

1
ඔබ ගූගල්ගේ ලියකියවිලි කියවන්නේ නම් : "පෝට්රේට් දිශානතිය, නමුත් උපාංග සංවේදකය මත පදනම්ව සාමාන්‍ය හෝ ප්‍රතිලෝම ආලේඛ්‍ය චිත්‍රයක් විය හැකිය. ඒපීඅයි 9 මට්ටමේ එකතු කර ඇත." ඉතින් - එනම් - "ආලේඛ්‍ය චිත්‍රය, දකුණු පස ඉහළට හෝ උඩු යටිකුරු කරන්න, ඇන්ඩ්‍රොයිඩ් 2.3+ පමණි."
යෝනි සම්ලාන්

2
පහත දැක්වෙන මගේ පිළිතුරේ මා සඳහන් කළ පරිදි - ගැටළු කිහිපයක් විසඳා ගැනීම සඳහා, “නොක්සෙන්සර්” වඩා හොඳ විකල්පයක් විය හැකිය.
මයික් වීර්

1
මට කියන්න බැහැ මම එකඟ නැහැ. සෑම අත්දැකීමක්ම දුරකථන වල භූ දර්ශන මාදිලිය සමඟ නොගැලපේ, එබැවින් ඔබ යූඑක්ස් තීරණය කිරීමට ඉඩ දිය යුතුය, සංවේදක නොවේ. ටැබ්ලට් පරිගණක වල ​​තත්වය එසේ නොවේ.
රෙන්සෝ තිසෝනි

112

AndroidManifest.xmlමෙම ලිපිය කියවන තෙක් ගොනු මාරුව ගැන මා දැන සිටියේ නැත , එබැවින් මගේ යෙදුම්වල මම ඒ වෙනුවට මෙය භාවිතා කර ඇත:

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

9
උපාංගය නිශ්චිත දිශානතියේ නොමැති නම් මෙය ඔබගේ ක්‍රියාකාරකම් පළමු බර පැටවීමට හේතු වේ.
ඩොරි

මම මෙම ක්‍රමය භාවිතා කරමින් සිටියෙමි, මම එය OnCreate හි අමතමින් පසුව සමහර වත්කම් ලිපිගොනු වලින් දත්ත කියවමි. මම භූ දර්ශන දිශානතියෙන් උපාංගය සමඟ යෙදුම ආරම්භ කළහොත් එය භ්‍රමණය වනු ඇත, නමුත් මෙහි ප්‍රති result ලය වනුයේ කිසියම් ආරම්භක හේතුවක් නිසා එම ආරම්භක වත්කම් වැරදියට කියවීමයි (සමහර විට භ්‍රමණය කෙසේ හෝ අවසන් වන තෙක් බලා සිටිය යුතුය). Xml විකල්පය භාවිතා කිරීමෙන් මෙම ගැටළුව ඇති නොවීය.
රාඩු සිමියොනෙස්කු

1
එය ඇන්ඩ්‍රොයිඩ් වැඩසටහන් සඳහා ආරම්භක අනුක්‍රමය සමඟ ගැටළුවක් විය හැකිය. ඔබට setRequestedOrientation () onResume () වෙත ගෙනයාමට උත්සාහ කළ හැකිය ???
පොහොසත්

45

android:screenOrientation="portrait"ඔබේ ක්‍රියාකාරකම් මේ ආකාරයෙන් ප්‍රකාශ කරන ඔබේ මැනිෆෙස්ට් ගොනුවට මෙය එක් කරන්න

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

ඔබට ජාවා කේතය භාවිතා කිරීමට අවශ්‍ය නම් උත්සාහ කරන්න

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

setContentViewඔබගේ ක්‍රියාකාරකම් සඳහා ක්‍රමයක් ඇමතීමට පෙරonCreate() .

මෙම උපකාරය සහ සැමට පහසුවෙන් තේරුම් ගත හැකි යැයි සිතමු ...


29

මෙහි ඇති පිළිතුරු බොහොමයක් "portrait"ඔබගේ AndroidManifest.xml ගොනුවේ භාවිතා කිරීමට යෝජනා කරයි . මෙය හොඳ විසඳුමක් සේ පෙනේ - නමුත් ප්‍රලේඛනයේ සඳහන් පරිදි, ඔබ භූ දර්ශන පමණක් තිබිය හැකි උපාංග තෝරා ගනී. නිසි දිශානතිය ලබා නොගෙන ඇතැම් උපාංගවලට (භූ දර්ශනයේ වඩාත්ම හොඳින් ක්‍රියා කරන) ආලේඛ්‍ය චිත්‍රයට යාමට ඔබ බල කරයි.

මගේ යෝජනාව "nosensor"ඒ වෙනුවට භාවිතා කිරීමයි . මෙමඟින් උපාංගය එහි පෙරනිමි කැමති දිශානතිය භාවිතා කිරීමට ඉඩ දෙනු ඇත, ගූගල් ප්ලේ හි කිසිදු මිලදී ගැනීම් / බාගැනීම් අවහිර නොකරනු ඇත, සහ සංවේදකය ඔබගේ (එන්ඩීකේ, මගේ නඩුවේ) ක්‍රීඩාව අවුල් නොකරන බවට සහතික කරයි.


බොහෝ දෙනෙක් මෙය ඉහළින් ඡන්දය ප්‍රකාශ කරන බැවින්, සමහර අපැහැදිලි උපාංග ඇත්ත වශයෙන්ම යෙදුම තුළ ඇති තිර භ්‍රමණය ක්‍රියාත්මක කිරීමට අවශ්‍ය වූ විට අනපේක්ෂිත ලෙස ප්‍රතිචාර දක්වන බැවින් “ආලේඛ්‍ය චිත්‍රය” යෝජනා කරන වෙනත් පිළිතුරු සමඟ මම ගොස් ඇති බව පෙන්වා දීමට කැමැත්තෙමි. අවශ්‍යතාවය පසුව මට. "සිතුවමක්" ඇති ඕනෑම යෙදුම් ඕනෑම ගූගල් ප්ලේ සැකසුමකින් අවහිර වනු ඇතැයි මම සැක කරමි.
මයික් වීර්

ගූගල් ප්ලේ ඇත්ත වශයෙන්ම භූ දර්ශන පමණක් උපාංගවල පෝට්රේට් පමණක් යෙදුම් පෙරහන් කරයි, මෙම පිටුවේ සටහන බලන්න: developper.android.com/guide/topics/manifest/… ("ඔබ ප්‍රකාශ කරන වටිනාකම ගූගල් වැනි සේවාවන් මඟින් පෙරීමට හැකියාව ලබා දෙයි. සෙල්ලම් කරන්න))
miracle2k

14

ඔබට පරිශීලක සැකසුම් අවශ්‍ය නම්,

එවිට මම නිර්දේශ කරමි setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

ඔබට සැකසුම් මෙනුවකින් සැකසුම් වෙනස් කළ හැකිය.

මට මෙය අවශ්‍ය වන්නේ මගේ ටයිමරයන් තිරයේ ඇති දේට අනුරූප විය යුතු අතර තිරය භ්‍රමණය කිරීමෙන් වත්මන් ක්‍රියාකාරකම් විනාශ වනු ඇත.


14

ඔබේ ප්‍රකාශනයේ මෙම රේඛාව මෙන් එක් කරන්න

android: screenOrientation = "ආලේඛ්‍ය චිත්‍රය"

<manifest
    package="com.example.speedtest"
    android:versionCode="1"
    android:versionName="1.0" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >


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

    </application>

</manifest>   

10

ඔබගේ සියලු ක්‍රියාකාරකම් පොදු පාදක පන්තියක් දක්වා දීර් without නොකර ඔබේ සම්පූර්ණ යෙදුම සඳහා මෙය කළ හැකිය.

ඔබේ ව්‍යාපෘතියට යෙදුම් උප පංතියක් ඇතුළත් කිරීමට වග බලා ගැනීම උපක්‍රමයයි. ඔබගේ යෙදුම මුලින්ම ආරම්භ වන විට එහි onCreate () හි, ක්‍රියාකාරකම් ජීවන චක්‍රීය සිදුවීම් පිළිබඳ දැනුම්දීම් ලබා ගැනීම සඳහා ඔබ ActivityLifecycleCallbacks වස්තුවක් (API මට්ටම 14+) ලියාපදිංචි කරයි.

ඔබගේ යෙදුමේ කිසියම් ක්‍රියාකාරකමක් ආරම්භ වූ විට (හෝ නැවැත්වූ, හෝ නැවත ආරම්භ කළ විට හෝ ඕනෑම දෙයක්) ඔබේම කේතයක් ක්‍රියාත්මක කිරීමට මෙය ඔබට අවස්ථාව ලබා දෙයි. මෙම අවස්ථාවේදී ඔබට අලුතින් සාදන ලද ක්‍රියාකාරකම් මත setRequestedOrientation () අමතන්න.

ඔබේ මැනිෆෙස්ට් ගොනුවේ යෙදුම: name = ". MyApp" එක් කිරීමට අමතක නොකරන්න.

class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();  

        // register to be informed of activities starting up
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {

            @Override
            public void onActivityCreated(Activity activity, 
                                          Bundle savedInstanceState) {

                // new activity created; force its orientation to portrait
                activity.setRequestedOrientation(
                    ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }
            ....
        });
    }
}

7

ඔබගේ ක්‍රියාකාරකම් ටැගය තුළ මෙම ගුණාංගය එක් කරන්න.

 android:screenOrientation="portrait"

7

android:screenOrientation="portrait"භූ දර්ශන ප්‍රකාරය අක්‍රිය කිරීමට අවශ්‍ය ක්‍රියාකාරකමට එක් කරන්න .


7

ඔබට අක්‍රීය කිරීමට අවශ්‍ය නම් Landscape mode for your android app(හෝ තනි ක්‍රියාකාරකමක්) ඔබ කළ යුත්තේ එකතු කිරීම පමණි,

android:screenOrientation="portrait"AndroidManifest.xmlගොනුවේ ක්‍රියාකාරකම් ටැගය වෙත .

මෙන්:

<activity android:name="YourActivityName" 
    android:icon="@drawable/ic_launcher" 
    android:label="Your App Name" 
    android:screenOrientation="portrait">

තවත් ක්‍රමයක්, ක්‍රමලේඛ ප්‍රවේශය.

ඔබට මෙය ක්‍රමානුකූලව කිරීමට අවශ්‍ය නම් එනම්. ජාවා කේතය භාවිතා කිරීම. භූ දර්ශන මාදිලියේ පෙන්වීමට ඔබට අවශ්‍ය නොවන ක්‍රියාකාරකම් වල ජාවා පන්තියේ පහත කේතය එක් කිරීමෙන් ඔබට එය කළ හැකිය.

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

එය ඔබට උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි .ඔබ වෙත පිවිසිය හැකි වැඩි විස්තර සඳහා සබැඳි විස්තරය මෙහි ඇතුළත් කරන්න


2
බොහෝ පිළිතුරු h ෆීනික්ස් සහ on යොනිගේ හොඳ උපදෙස් වලට පටහැනි උපදෙස් ලබා දෙන හෙයින්, ඔවුන් යෝජනා කරන දේ නැවත අවධාරණය කිරීම හොඳ යටි පතුලක් යැයි මම සිතමි:android:screenOrientation="nosensor">
DSlomer64

1
@ DSlomer64 ඔව් .ඔබට ටැබ්ලට් උපාංග සමඟ සාර්ථකව කටයුතු කිරීමට අවශ්‍ය නම් ඔබ ඒ වෙනුවට සිතුවම් අගය භාවිතා කළ යුතුය
IntelliJ Amiya

7

ක්‍රියාකාරකමේ onCreate () හි මෙය භාවිතා කරන්න

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

7

ඔබ android:screenOrientation="sensorPortrait"AndroidManifest.xml හි වෙනස් විය යුතුය


6

සෑම ක්‍රියාකාරී ප්‍රවේශයකම දිශානතිය එක් කිරීමේ කරදරයෙන් මිදීමට ඔබට අවශ්‍ය නැතිනම්, 'ක්‍රියාකාරකම' වෙනුවට ඔබේ යෙදුමේ සෑම ක්‍රියාකාරකමකින්ම උරුම වන මූලික ක්‍රියාකාරකම් පන්තියක් ('ක්‍රියාකාරකම්' හෝ 'AppCompatActivity' උරුම කර ගනී) සාදන්න. 'හෝ' AppCompatActivity 'සහ ඔබේ මූලික ක්‍රියාකාරිත්වයේ පහත කේතය එකතු කරන්න:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    // rest of your code......
}

5

සමහර දෘෂ්ටි කෝණයෙන් දිශානතිය වෙනස් කරන්නේ කෙසේද

සමස්ත ක්‍රියාකාරිත්වයේ දිශානතිය අගුළු දැමීම වෙනුවට, ඔබේ ඕනෑම දෘෂ්ටියකින් ප්‍රායෝගිකව දිශානතිය ගතිකව අගුළු දැමීමට ඔබට මෙම පන්තිය භාවිතා කළ හැකිය: -

ඔබේ දර්ශනය භූ දර්ශනය බවට පත් කරන්න

OrientationUtils.lockOrientationLandscape(mActivity);

ඔබේ අදහස පෝට්රේට් කරන්න

OrientationUtils.lockOrientationPortrait(mActivity);

unlock දිශානතිය

OrientationUtils.unlockOrientation(mActivity);

දිශානතිය උපයෝගිතා පන්තිය

import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Build;
import android.view.Surface;
import android.view.WindowManager;

/*  * This class is used to lock orientation of android app in nay android devices 
 */

public class OrientationUtils {
    private OrientationUtils() {
    }

    /** Locks the device window in landscape mode. */
    public static void lockOrientationLandscape(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
    }

    /** Locks the device window in portrait mode. */
    public static void lockOrientationPortrait(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

    /** Locks the device window in actual screen mode. */
    public static void lockOrientation(Activity activity) {
        final int orientation = activity.getResources().getConfiguration().orientation;
        final int rotation = ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay()
                .getRotation();

        // Copied from Android docs, since we don't have these values in Froyo
        // 2.2
        int SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 8;
        int SCREEN_ORIENTATION_REVERSE_PORTRAIT = 9;

        // Build.VERSION.SDK_INT <= Build.VERSION_CODES.FROYO
        if (!(Build.VERSION.SDK_INT <= Build.VERSION_CODES.FROYO)) {
            SCREEN_ORIENTATION_REVERSE_LANDSCAPE = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
            SCREEN_ORIENTATION_REVERSE_PORTRAIT = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
        }

        if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90) {
            if (orientation == Configuration.ORIENTATION_PORTRAIT) {
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
            }
        } else if (rotation == Surface.ROTATION_180 || rotation == Surface.ROTATION_270) {
            if (orientation == Configuration.ORIENTATION_PORTRAIT) {
                activity.setRequestedOrientation(SCREEN_ORIENTATION_REVERSE_PORTRAIT);
            } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
                activity.setRequestedOrientation(SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
            }
        }
    }

    /** Unlocks the device window in user defined screen mode. */
    public static void unlockOrientation(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
    }

}

4

භාවිත

android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait" 

4

ඔබ එක් එක් ක්‍රියාකාරකමෙහි දිශානතිය සැකසිය යුතුය.

<activity
                android:name="com.example.SplashScreen2"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>
            <activity
                android:name="com.example.Registration"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>
            <activity
                android:name="com.example.Verification"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>
            <activity
                android:name="com.example.WelcomeAlmostDone"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>
            <activity
                android:name="com.example.PasswordRegistration"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>

4

Oncreate () ක්‍රමය තුළ පන්තිය එක් කරන්න

 setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

4

ඔබ Xamarin C # භාවිතා කරන්නේ නම් මෙම විසඳුම් සමහරක් ක්‍රියා නොකරනු ඇත. මෙන්න මම වැඩ කිරීමට සොයාගත් විසඳුම.

[Activity(MainLauncher = true, Icon = "@drawable/icon", ScreenOrientation = ScreenOrientation.Portrait)]

පංතියට ඉහළින් හොඳින් ක්‍රියා කරයි, අනෙක් විසඳුම් වලට සමානව, ගෝලීය වශයෙන් අදාළ නොවන අතර සෑම ක්‍රියාකාරකම් ශීර්ෂයකම තැබිය යුතුය.


4

ඔබේ මැනිෆෙස්ට්. Xml හි මෙය ලිවීමෙන් ඔබේ විශේෂිත ක්‍රියාකාරකම් සැමවිටම පෝට්රේට් ප්‍රකාරයේ රැඳී සිටීමට ඔබට බල කළ හැකිය

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

ඔබගේ ක්‍රියාකාරකම්වල onCreate () ක්‍රමයට පහත පේළියක් ලිවීමෙන් පසු ක්‍රියාකාරකම් ප්‍රකාරයේ රැඳී සිටීමට ඔබට බල කළ හැකිය

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}

3
<android . . . >
    . . .
    <manifest . . . >
        . . .
        <application>
            <activity android:name=".MyActivity" 
                android:screenOrientation="portrait" 
                android:configChanges="keyboardHidden|orientation">
            </activity>
        </application>
    </manifest>
</android>

3

ඔබේ ව්‍යාපෘතියට ප්‍රශංසා කරන්න,

npm ස්ථාපනය කරන්න

npm i ප්‍රතික්‍රියා-ස්වදේශීය-දිශානතිය-ලොකර්

එවිට ඔබ React_Native (ඔබේ ව්‍යාපෘති ෆෝල්ඩරය) / android / app / src / main / AndroidManifest.xml වැනි මැනිෆෙස්ට් පන්තිය භාවිතා කරයි.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

<application
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:allowBackup="false"
  android:theme="@style/AppTheme">
  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:screenOrientation="landscape"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>
  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>

ඔබට ස්තුතියි!


2

<apphome>/platform/androidසාදන ලද නාමාවලියෙහි AndroidManifest.xml(ජනනය කළ එකෙන් එය පිටපත් කිරීම). ඉන්පසු සියලුම ක්‍රියාකාරකම් අංග වලට android:screenOrientation=" portrait" එකතු කරන්න .


2
 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="in.co.nurture.bajajfinserv">
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>


    <application

        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity" android:screenOrientation="portrait">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

android: screenOrientation යන ගුණාංගය භාවිතා කිරීමෙන් අපට පෝට්රේට් හෝ භූ දර්ශන මාදිලියේ ක්‍රියාකාරකම් සීමා කළ හැකිය.

මගේ වැඩසටහනේ අපට එකකට වඩා ක්‍රියාකාරකම් තිබේ නම්, ඕනෑම ක්‍රියාකාරකමක් ඕනෑම ආකාරයකින් සීමා කිරීමට ඔබට නිදහස ඇති අතර එය ඔබට අවශ්‍ය නොවන අනෙක් අයට කිසි විටෙකත් බලපාන්නේ නැත.


2

එක්කෝ මැනිෆෙස්ට් පන්තියේ.

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

හෝ ක්‍රමලේඛිකව

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

සටහන:setContentView ඔබගේ ක්‍රියාකාරකම් සඳහා ක්‍රමයට පෙර ඔබ මෙය ඇමතිය යුතුය onCreate().


2

එකතු android:screenOrientation="portrait"දී AndroidManifest.xml ගොනුව.

උදාහරණයක් වශයෙන් :

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

1

වෙනත් කෙනෙකුට උපකාර කිරීමේ අපේක්ෂාවෙන්, AndroidManifest.xml හි ACTIVITY හි පහත දැක්වෙන ගුණාංගය ඔබට අවශ්‍ය වන්නේ:

android: configChanges = "දිශානතිය"

ඉතින්, සම්පූර්ණ ක්‍රියාකාරකම් නෝඩ්:

<activity android:name="Activity1" 
    android:icon="@drawable/icon" 
    android:label="App Name" 
    android:configChanges="orientation">

බොහෝ පිළිතුරු ඉතිරිව ඇත, ඔබ වැඩි විස්තර සැපයිය යුතුය, යමෙකු ඔබේ පිළිතුරු භාවිතා කළ යුත්තේ ඇයි. විශේෂයෙන් ලේඛකයින් පවසන්නේ මෙම විකල්පය භාවිතා නොකරන බවයි: "සටහන: මෙම ගුණාංගය භාවිතා කිරීම වළක්වා ගත යුතු අතර එය අවසාන උපක්‍රමයක් ලෙස පමණක් භාවිතා කළ යුතුය. වින්‍යාස වෙනස්වීමක් හේතුවෙන් නැවත ආරම්භ කිරීම නිසි ලෙස හැසිරවිය යුතු ආකාරය පිළිබඳ වැඩි විස්තර සඳහා කරුණාකර ධාවන කාල වෙනස්කම් හසුරුවන්න." developer.android.com/guide/topics/manifest/...
Murmel

1

කොට්ලින් වලදී එය ක්‍රමලේඛනය කර පහත දැක්වේ

requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT

1

එය මට වැඩ කළා, AndroidManifest ගොනුවේ මෙම කේතය එක් කිරීමට උත්සාහ කරන්න

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme">
        ....
        ....
        </application>

ඔබ එක් ක්‍රියාකාරකමක් සඳහා සැකසිය යුතු නැති නිසා මම හොඳ විසඳුමක් වනු ඇත. අවාසනාවට, මගේ යෙදුමේ ක්‍රියා නොකරයි.
මයිරොස්ලාව් කොලොඩි

1

එය ඔබේ මැනිෆෙස්ටයට දමන්න.

<activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="sensorPortrait" />

දිශානතිය ආලේඛ්‍ය චිත්‍රයක් වනු ඇත, නමුත් පරිශීලකයාගේ දුරකථනය උඩු යටිකුරු වී ඇත්නම්, එය නිවැරදි මාර්ගයද පෙන්වයි. (එබැවින් ඔබේ තිරය අංශක 180 ක් භ්‍රමණය වේ).


ක්‍රියාකාරකම බහු කවුළු ප්‍රකාරයේදී ක්‍රියාත්මක වන්නේ නම් පද්ධතිය මෙම ගුණාංගය නොසලකා හරියි .


0

ඔබගේ ක්‍රියාකාරකම් පළමු උපාංග දිශානතියේ තත්වයට සම්බන්ධ නම්, ක්‍රමයේ වත්මන් උපාංග දිශානතිය ලබා ගෙන onCreateඑය සදහටම නිවැරදි කරන්න:

        int deviceRotation = ((WindowManager) getBaseContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getOrientation();

        if(deviceRotation == Surface.ROTATION_0) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
        else if(deviceRotation == Surface.ROTATION_180)
        {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
        }
        else if(deviceRotation == Surface.ROTATION_90)
        {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
        else if(deviceRotation == Surface.ROTATION_270)
        {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
        }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.