Respuestas:
En el manifiesto, configure esto para todas sus actividades:
<activity android:name=".YourActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"/>
Dejame explicar:
android:configChanges="orientation"usted, dígale a Android que usted será responsable de los cambios de orientación.android:screenOrientation="portrait" configura el modo de orientación predeterminado.android:screenOrientation="portrait"
PortraitActivityy en onCreate call setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)Todas las actividades que extiendan esto no rotarán
Activity, como una actividad se extiende desde ListActivitymientras que otras se extienden simplemente desde Activity?
En Android manifiesto de archivo, puesto atributo para el <activity>que seandroid:screenOrientation="portrait"
Hay dos maneras,
android:screenOrientation="portrait"para cada actividad en el archivo de manifiestothis.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);en cada archivo java.en el manifiesto:
<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>
o: en 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.. Agregar xmlns:tools="http://schemas.android.com/tools"el elemento raíz resuelve el problema
Publicación antigua lo sé. Para ejecutar su aplicación siempre en modo vertical, incluso cuando la orientación puede o no se intercambia, etc. (por ejemplo, en tabletas), diseñé esta función que se usa para configurar el dispositivo en la orientación correcta sin la necesidad de saber cómo es vertical y horizontal Las funciones están organizadas en el dispositivo.
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); }
}
¡Funciona de maravilla!
AVISO: Cambie this.activitypor su actividad o agréguelo a la actividad principal y elimine this.activity;-)
yo suelo
android:screenOrientation="nosensor"
Es útil si no desea admitir el modo vertical al revés.