W jaki sposób mogę uniemożliwić działanie w trybie Android przez krótkie przejście do trybu portretowego, gdy określiłem krajobraz?
Podałem, że moja aktywność powinna być ustawiona na krajobraz, który działa przez większość czasu.W szczególności, gdy działanie jest już uruchomione i uruchamiam jego nową instancję z Eclipse, Aktywność rozpoczyna się w Portrecie i natychmiast zmienia się w Krajobraz - ale nie wcześniej, niż Widok został już powiedziany, był to Portret.Tak więc mój widok jest inicjowany jako Portret, ale natychmiast otrzymuje zmianę powierzchni.
W moim manifeście mam następujące informacje:
<activity android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden"
Próbowałem też:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Kiedy celowałem w poziom API 7, wierzę, że to działało dobrze. Teraz celuję w poziom API 8 i pojawiło się dziwne dziwactwo.
W metodzie oncreate wartość:
getResources().getConfiguration().orientation
jest:
Configuration.ORIENTATION_PORTRAIT
Natychmiast po utworzeniu działania zmieni się orientacja na Krajobraz, otrzymamsurfacechanged
i mogę „naprawić” wszystko. Ale dlaczego jest to kiedykolwiek portret?
Podejrzewam, że ma to związek z faktem, że aplikacja jest autorotowana podczas uruchamiania z ekranu portretowego. Wydaje się dziwne, że aplikacja, która nigdy NIE była w portrecie, zaczyna się w ten sposób, a następnie szybko się zmienia.
Ale czy jest jakiś sposób, aby nie pozwolić mu być portretem?
Umieściłem to w mojej aktywnościonCreate
:
while (getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
Spowodowało to, że utknął tam na zawsze :)