chcę zrobić moją aplikację tylko w krajobrazie w Androidzie

Chcę, aby moja aplikacja działała tylko w trybie poziomym, ale nie może działać. Podałem screenOrientation = "landscape", mimo że pierwsza strona będzie w trybie poziomym, a inne działania będą w trybie portretowym.

PLIK 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>

KLASA 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);
        }
    };
}
Author: Sami Kuhmonen, 2010-12-30

5 answers

Zachowaj tę część manifestu tak, jak już jest. Na przykład rozważ aktywność Introhomu.

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

A Dla activity XML, upewnij się, że masz IntroHome activity layout XML only w folderze layout-land . W ten sposób aktywność / działania, które posiadasz, będą wyświetlać tylko krajobrazową wersję XML, którą zdefiniowałeś.

 72
Author: Siddharth Lele,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-30 09:56:45

Możesz również spróbować ustawić orientację na podstawie kodu

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Sprawdź ten link, aby uzyskać więcej informacji

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

 3
Author: DeRagan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-30 09:47:09

Możesz użyć następującego kodu zgodnie z wymaganiami:

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

Musisz umieścić ten kod przed setContentView(R.layout.layout_name.xml).

 3
Author: Sudipta Som,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-08 06:09:23

Spróbuj dodać:

android:configChanges="orientation|keyboardHidden"
Daj znać, jeśli to pomoże!! Tylko zgaduję!!
 1
Author: Prateek Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-28 19:31:01

To wygląda jak stary post, ale wygląda na to, że jeśli ustawisz tryb na krajobraz w pliku manifestu, a następnie przełączysz tryb na krajobraz w kodzie java, możesz przełączać tryb dwukrotnie, powodując renderowanie urządzenia w trybie pionowym. Spróbuj skomentować kod w pliku java i zobacz, co się stanie. Jeśli to nie zadziała, wszystko, co musisz zrobić, to zmienić go z powrotem. Łatwy test peasy.

 -1
Author: James,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-25 14:46:42