Question

Je veux faire mon travail d'application uniquement en mode paysage, mais ne peut le faire fonctionner. J'ai donné screenOrientation = "landscape" même si la première page sera en mode paysage et d'autres activités seront en mode portrait.

fichier 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);
        }
    };
}
Était-ce utile?

La solution

Gardez cette partie du manifeste qu'il est déjà. Par exemple, considérons l'activité IntroHome.

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

Et pour le XML d'activité, assurez-vous que vous avez le XML de mise en page d'activité IntroHome uniquement mise en terre dossier . De cette façon, les activités / activités que vous avez montrera seulement la version du paysage du XML que vous avez défini.

Autres conseils

Vous pouvez également essayer de définir l'orientation de votre code

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Vérifier ce lien pour plus d'infos

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

Vous pouvez utiliser le code suivant selon l'exigence:

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

vous devez mettre ce code avant setContentView(R.layout.layout_name.xml).

Essayez d'ajouter:

android:configChanges="orientation|keyboardHidden"

Laissez-moi savoir si ça aide !! Juste une supposition !!

Cela ressemble à un ancien poste, mais il me semble que si vous définissez le mode paysage dans le fichier manifeste, puis passez en mode paysage dans le code java, vous pourriez changer de mode faisant deux fois le dispositif rendre en mode portrait au lieu. Essayez de commenter le code dans votre fichier java et de voir ce qui se passe. Si cela ne fonctionne pas tout ce que vous devez faire est de changer en arrière. test facile peasy.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top