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);
        }
    };
}
È stato utile?

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

http://www.devx.com/wireless/Article/ 40792/0 / page / 5

È 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top