voglio fare la mia domanda solo nel paesaggio in Android
-
14-10-2019 - |
Domanda
Voglio fare il mio lavoro applicazione solo in modalità orizzontale, ma non può farlo funzionare. Ho dato screenOrientation = "landscape"
anche se la prima pagina sarà in modalità orizzontale e altre attività sarà in ritratto.
FILE 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>
JAVA CLASS
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);
}
};
}
Soluzione
Tenere questa parte del manifesto, come lo è già. Ad esempio, si consideri l'attività IntroHome.
<activity android:name=".IntroHome"
android:label="@string/app_name"
android:screenOrientation="landscape"
>
</activity>
E per l'XML attività, assicuratevi di avere l'IntroHome layout di attività XML solo nella Layout-terra cartella. In questo modo, le attività / attività che avete mostrerà solo la versione del paesaggio del XML che avete definito.
Altri suggerimenti
Si può anche provare a impostare l'orientamento dal codice
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Controlla questo link per maggiori informazioni
È possibile utilizzare seguente codice secondo il requisito:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
e
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
devi mettere questi codice prima setContentView(R.layout.layout_name.xml)
.
Prova ad aggiungere:
android:configChanges="orientation|keyboardHidden"
Fammi sapere se aiuta !! Solo una supposizione !!
Questo appare come un vecchio post, ma sembra a me come se si imposta la modalità paesaggio nel file manifesto, e quindi passare alla modalità paesaggio nel codice Java, si potrebbe essere la commutazione della modalità per due volte causando il dispositivo per rendere in modalità verticale, invece. Provare a commentare il codice nel file java e vedere cosa succede. Se non funziona tutto ciò che dovete fare è cambiare di nuovo. Test Easy Peasy.