Search code examples
androidscreen-orientationandroid-4.2-jelly-bean

Set initial screen orientation


I am making an app where the first screen I want to view is Portrait. I then go to the next activity which is set in landscape.

The problem i'm facing is that if I return to the first screen it will be set as landscape, evidently inheriting the orientation from the previous screen.

Is there a possible way to set the initial screen orientation as portrait which is set but the user can then go ahead and change it to landscape when they want?

Thanks

EDIT: SOLVED

Thank you for your suggestions. I've overcome the issue. It's slightly difficult to explain but will try my up most.

So my first activity has a feature whereby if the phone is turned to landscape it will show an image, full screen. And again, if the phone was portrait, the portrait view, where I have a list view.

The second activity loads an editing page to let me change that image.

So now if i press back on the editor activity. The first activity would load into a list view in LANDSCAPE. which is NOT what I want.

therefore in order to get around this. I have firstly disabled the back button when the first activity is landscape so the user can not remove himself from the view without turning the phone to landscape.

I then moved the code:

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            //Show landscape picture
            }
    }

to the top of my class before the onCreate method.

This has solved my issue so that now, if I was to go back to my first activity whilst in landscape the only thing that would show is the landscape view.

I hope that was clear enough for all to understand :)

Again thanks for the help!


Solution

  • you can set the screen orientation programmatically in the onCreate()- method:

    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    

    just right before the call of super.onCreate();.

    I hope, I could help you.

    Best regards, G_J