Jawaban:
Dalam manifes, tetapkan ini untuk semua aktivitas Anda:
<activity android:name=".YourActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"/>
Biarkan saya jelaskan:
android:configChanges="orientation"
Anda memberi tahu Android bahwa Anda akan bertanggung jawab atas perubahan orientasi.android:screenOrientation="portrait"
Anda mengatur mode orientasi default.android:screenOrientation="portrait"
PortraitActivity
dan di panggilan onCreate setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
Semua aktivitas yang memperpanjang ini tidak akan berputar
Activity
, seperti satu aktivitas memanjang dari ListActivity
sementara yang lain hanya memperpanjang dari Activity
?
Di File Manifes Android, berikan atribut untuk <activity>
ituandroid:screenOrientation="portrait"
Ada dua cara,
android:screenOrientation="portrait"
untuk setiap Kegiatan di File Manifestthis.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
di setiap file java.dalam manifes:
<activity android:name=".activity.MainActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
atau: di MainActivity
@SuppressLint("SourceLockedOrientationActivity")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
app/src/main/AndroidManifest.xml; lineNumber: 20; columnNumber: 50; The prefix "tools" for attribute "tools:ignore" associated with an element type "activity" is not bound.
. Menambahkan xmlns:tools="http://schemas.android.com/tools"
elemen root memecahkan masalah
Posting lama saya tahu. Untuk menjalankan aplikasi Anda selalu dalam mode potret bahkan ketika orientasi mungkin atau ditukar dll (misalnya pada tablet) saya merancang fungsi ini yang digunakan untuk mengatur perangkat dalam orientasi yang benar tanpa perlu tahu bagaimana potret dan lansekap fitur disusun pada perangkat.
private void initActivityScreenOrientPortrait()
{
// Avoid screen rotations (use the manifests android:screenOrientation setting)
// Set this to nosensor or potrait
// Set window fullscreen
this.activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
DisplayMetrics metrics = new DisplayMetrics();
this.activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
// Test if it is VISUAL in portrait mode by simply checking it's size
boolean bIsVisualPortrait = ( metrics.heightPixels >= metrics.widthPixels );
if( !bIsVisualPortrait )
{
// Swap the orientation to match the VISUAL portrait mode
if( this.activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT )
{ this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }
else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ); }
}
else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); }
}
Bekerja seperti pesona!
PEMBERITAHUAN: Ubah this.activity
aktivitas Anda atau tambahkan aktivitas utama dan hapus this.activity
;-)
saya menggunakan
android:screenOrientation="nosensor"
Akan sangat membantu jika Anda tidak ingin mendukung mode potret sisi atas.