studio rotate linearlayout land ejemplo configchanges android android-layout android-xml screen-orientation

rotate - Quiero hacer mi aplicación solo en el paisaje en Android



portrait landscape android (5)

Quiero que mi aplicación funcione solo en modo horizontal pero no puedo hacer que funcione. He dado screenOrientation = "landscape" aunque la primera página estará en modo horizontal y otra actividad estará en vertical.

ARCHIVO XML

<application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".IntroHome" android:label="@string/app_name" android:screenOrientation="landscape"> </activity> <activity android:name=".ObjectivesPage" android:label="@string/app_name" android:screenOrientation="landscape" > </activity> <activity android:name=".MenuPage" android:label="@string/app_name" android:screenOrientation="landscape" > </activity> </application>

CLASE JAVA

public class ObjectivesPage extends Activity{ ImageButton imgButton; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.objectivespage); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); imgButton = (ImageButton)findViewById(R.id.buttonCloseNGo); imgButton.setOnClickListener(onClickCloseNGo); } private OnClickListener onClickCloseNGo = new OnClickListener(){ public void onClick(View v) { Intent intent = new Intent(ObjectivesPage.this,MenuPage.class); startActivity(intent); } }; }


Guarde esta parte del manifiesto como ya es. Por ejemplo, considere la actividad de IntroHome.

<activity android:name=".IntroHome" android:label="@string/app_name" android:screenOrientation="landscape" > </activity>

Y para la actividad XML, asegúrese de tener el XML de diseño de la actividad de IntroHome solo en la carpeta layout-land . De esta forma, la actividad / actividades que tenga solo mostrará la versión horizontal del XML que ha definido.


Parece una publicación anterior, pero me parece que si configura el modo en horizontal en el archivo de manifiesto y luego cambia el modo a horizontal en el código de Java, es posible que esté cambiando el modo dos veces, lo que hace que el dispositivo se muestre en modo retrato en su lugar. Intente comentar el código en su archivo java y vea qué sucede. Si no funciona, todo lo que tienes que hacer es cambiarlo de nuevo. Prueba fácil peasy.


Prueba agregar:

android:configChanges="orientation|keyboardHidden"

Avísame si ayuda !! ¡¡Solo una suposición!!


Puede usar el siguiente código según el requisito:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); y setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

tienes que poner estos códigos antes de setContentView(R.layout.layout_name.xml) .