問題タブ [screen-orientation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3449 参照

iphone - iPhoneプライベートAPIでインターフェースの向きを設定する

[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait];誰かがあなたのアプリがAppleによって拒否されることを確認できますか?

良い代替品はありますか?

0 投票する
2 に答える
2770 参照

android - アクティビティ開始時の画面の向きの変更を適切に処理する

アクティビティを起動したインテントのデータから方向が決定されるアクティビティの設定を適切に処理する方法を見つけようとしています。これは、ユーザーがレベルを選択できるゲーム用です。その中には縦向きのものと横向きのものがあります。私が直面している問題はsetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)、アクティビティが完全に読み込まれるまで有効にならないことです。起動時にロードと画像処理を行うので、これは私にとって問題です。これは一度だけ行う必要があります。

現在、ユーザーが横向きレベルを選択した場合:

  • アクティビティが onCreate() で開始され、デフォルトで縦向きになります
  • 起動インテントを分析して、横向きにする必要があることを発見しました
  • onResume() に関係なく続行し、情報をロードし、他のセットアップ タスクを実行します。
  • この時点で setRequestedOrientation が開始されるため、アプリケーションは onPause() から onDestroy() まで実行されます。
  • その後、再び onCreate() から起動し、 onResume() まで実行され、以前のセットアップを繰り返します

それを回避し、読み込みを 2 回実行しないようにする方法はありますか? たとえば、理想的には、onCreate が呼び出される前に、起動インテントのいくつかのプロパティに応じて横向きにするか縦向きにするかをアクティビティが認識しますが、不可能なことを見逃していない限り。時間のかかるロード手順の前にチェックすることで、ロードの繰り返しを回避する方法をハックすることができましたbooleanが、それは正しい方法ではないようです。をオーバーライドできると思いますonSaveInstanceStateが、それには多くの追加コーディングが必要になります。これを行う簡単な方法はありますか?

ありがとう!


解決:

ダニエルの答えによると、これは実際には非常に簡単に修正できました。いくつかの小さな変更を加える必要がありました。プレイヤーがプレイするレベルを選択する「メニュー」アクティビティでは、インテントによって開始されるクラスを選択するために if/else チェックを追加する必要がありました。これは、プレイヤーがレベルを選択したときに決定される、ポートレートまたはランドスケープを表す単純な int を使用して行われました。次に、「GameLogic」クラスを拡張する 2 つ目のクラスを作成しました。これは、メニューや説明などではなく、ゲーム自体のほとんどのコードを含むクラスです。

文字通りシンプルで完全に空です。こうすることで、以前のアクティビティからすべてのコードを継承し、方向に応じて異なる処理を行うようにコーディングしました。最後に、GameLandscape は常に横向きで実行され、GameLogic は常に縦向きで実行されることを示す行をマニフェストに追加する必要がありました。

本当に簡単な問題です。

0 投票する
2 に答える
1005 参照

android - Android:画面の向きを変更するためにアプリがファイナライズされるのか破棄されるのかを判断する

私はAndroidの世界に比較的慣れておらず、画面の向きのサイクル全体がどのように機能するかを理解するのが難しいです。向きが縦向きから横向きに、またはその逆に変わると、アクティビティが破棄されてから再作成されることを理解しています。したがって、onCreate関数のすべてのコードが再度実行されます。これが私の状況です。Webサイトにログインし、データを取得してユーザーに表示するために作業しているアプリがあります。これはすべてバックグラウンドスレッドで実行されますが、これらのスレッドを開始するコードはonCreate関数にあります。ここで問題となるのは、ユーザーが画面の向きを変更するたびに、アプリがログインしてデータを取得し、ユーザーに再度表示することです。私がやりたいのは、アプリがログインしているかどうかをアプリに通知するブール値を設定して、onCreate関数が呼び出されたときにログインする必要があるかどうかをアプリが認識できるようにすることです。アプリがメモリ内にある限り、HttpClientが存在し、ユーザーのログインからのCookieが含まれますが、アプリがシステムによって強制終了されると、Cookieは削除されます。したがって、アプリが強制終了されたときにログインしたブール値をfalseに設定するようなことをする必要があると思いますが、画面が回転するとonDestroyが呼び出されるので、これはどのように可能ですか?また、finalize関数とisFinishing()も調べましたが、これらは機能していないようです。したがって、アプリが強制終了されたときにログインしたブール値をfalseに設定するようなことをする必要があると思いますが、画面が回転するとonDestroyが呼び出されるので、これはどのように可能ですか?また、finalize関数とisFinishing()も調べましたが、これらは機能していないようです。したがって、アプリが強制終了されたときにログインしたブール値をfalseに設定するようなことをする必要があると思いますが、画面が回転するとonDestroyが呼び出されるので、これはどのように可能ですか?また、finalize関数とisFinishing()も調べましたが、これらは機能していないようです。

短いバージョン:アプリがメモリから強制終了されたときと、アクティビティがローテーションされたときとイベントごとに異なるコードを区別するにはどうすればよいですか?

どんな助けや正しい方向へのポイントも大歓迎です。ありがとうございました!

0 投票する
4 に答える
14927 参照

android - アプリケーションの向き (横または縦) はどのようにロックされますか?

次を使用して向きを固定しようとしました:

ディスプレイは縦向きのままですが、アクティビティは再作成されます。これを解決する方法はありますか?

向きが変わってもアクティビティが再作成されないように、アプリケーションの向きをロックするにはどうすればよいですか?

0 投票する
4 に答える
14825 参照

android - AVD 画面の向きが CTRL+F11 または CTRL+F12 で変更されない

Eclipse を使用して AVD エミュレーターでアプリを実行していますが、AVD (エミュレーターの Android 2.0 プラットフォーム) で画面の向きを変更できません。

キーボードでCTRL+F11またはCTRL+を押しても何も起こりません。F12いずれかのホットキーを押しても、adb debuglog/logcat にメッセージは生成されません。

http://developer.android.com/guide/developing/tools/emulator.htmlによると、これらはエミュレータの画面の向きを切り替える正しいホットキーです。

アプリとメッセージアプリで試してみました。いずれの場合も、ホットキーは影響しません。

Fedora 12、Gnomeを実行しています。システム -> 設定メニューでキーボード ショートカットを確認しましたが、どちらのホットキーにも何も接続されていません。

同じ問題、3 台の異なる PC (すべて Fedora Gnome を実行)。

0 投票する
3 に答える
7872 参照

android - Androidウィジェットの異なる縦向きと横向き

(うまくいけば)比較的簡単な質問があります。AppWidgetで縦向きに使用するレイアウトと横向きに使用するレイアウトをAndroidに指示するにはどうすればよいですか?

前もって感謝します!

0 投票する
1 に答える
727 参照

iphone - iphoneの横向きモードでABPersonViewControllerとABNewPersonViewControllerの回転を止める方法

私はプッシュビューコントローラーでABPersonViewControllerandクラスを使用しています。ABNewPersonViewController

ABPersonViewControllerおよびページではABNewPersonViewController、ポートレート モードで表示されています。しかし、iPhone を回転させると、横向きモードで完全に回転します。でもこの回転は止めたい。iPhone を横向きモードで回転させると、ビューは縦向きモードになるはずです。

0 投票する
6 に答える
23839 参照

iphone - iphone/iPad の向きの処理

これは、人々が私にガイダンスを提供するためのより一般的な質問です.基本的に私はiPad/iPhone開発を学んでおり、最終的に多方向サポートの質問に出くわしました.

私はかなりの数の doco を調べましたが、私の著書「Beginning iPhone 3 Development」には、それに関する素晴らしい章があります。

しかし、私の質問は、プログラムでコントロールを変更する場合 (または方向ごとに異なるビューを使用する場合) は、一体どうやってコード ベースを維持するのでしょうか? スパゲッティ コード/何千もの "if" チェックに関する非常に多くの問題がいたるところにあることは想像に難くありません。

この問題を処理した経験のある人はいますか? それを制御するための良い方法は何ですか?

どうもありがとうマーク

0 投票する
4 に答える
11110 参照

iphone - How to implement UIViewController rotation in response to orientation changes?

My app has about 10 different UIViewControllers, just one of which I want to switch to landscape mode if the device is rotated. (All the rest, I want to keep in portrait.)

In order to implement rotation on that one view, I needed to implement its controller's 'shouldAutorotate' method and return YES. Since this view is accessed via a navigation controller, I also needed to create a subclass of UINavigationController that implements 'shouldAutorotate' and return YES.

This solution works, but too well. I find that all of the UIViewControllers I push onto my subclass of UINavigationController respond to rotation, even if I implement 'shouldAutorotate' and return NO. (Remember: I only want one particular UIViewController to respond to rotation, not every one in the navigation controller's stack.)

So, my question is: how do I best do this? All the solutions I can come up with seem 1) cumbersome, and 2) worse, don't seem to work.

Thanks very much.

0 投票する
7 に答える
17841 参照

ipad - iPad の MPMoviePlayerController フルスクリーンの癖

ビュー コントローラーに MPMoviePlayerController を表示し、YouTube アプリのように、ユーザーがデフォルト コントロールで全画面表示に切り替えられるようにしたいと考えています。必要最小限の例で次のコードを使用しています。

これは、ユーザーがビデオを全画面表示にし、デバイスを回転させて画面をタップするまでうまく機能します。以下のスクリーンショットに示すように、ステータス バーが間違った位置に表示されます。

スクリーンショット

私は iPad 用のテンプレート Tab Bar Application を使用しています。上記のviewDidLoad、ビュー変数、およびムービープレーヤーを表示するためのUIViewをXIBに追加しただけです。

私は何を間違っていますか?