問題タブ [screen-rotation]

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 投票する
13 に答える
46934 参照

android - 画面回転中に AsyncTask を処理するには?

インスタンスの状態を保存する方法や、画面の回転中にアクティビティが破壊された場合の対処方法について、よく読んでいます。

多くの可能性があるようですが、AsyncTask の結果を取得するのに最適な方法はわかりません。

私は単に再び開始され、アクティビティのメソッドを呼び出すいくつかの AsyncTasks を持っていますisFinishing()。アクティビティが終了している場合、それらは何も更新しません。

問題は、失敗または成功する可能性のある Web サービスへの要求を行う 1 つのタスクがあり、タスクを再起動するとユーザーに経済的損失が生じることです。

これをどのように解決しますか?考えられる解決策の長所と短所は何ですか?

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

android - performTraversals と onConfigurationChanged の競合状態により、レイアウトが正しくなくなりますか?

アクティビティを再起動するのではなく、onConfigurationChanged を介して自分でローテーションを処理している、やや複雑な Android アプリケーションがあります。デバイスまたはエミュレーターをしばらく (何度も回転させて) 使用した後、アプリケーションが断続的に正しくレイアウトされていないことに気付き始めました (ランドスケープ モードでは縦長の幅が維持されます)。

アクティビティのすべての「onAction」イベントにトレース ログ ステートメントを追加したところ、次の 2 つの異なるフローが表示されます。

正しい:

  1. onConfigurationChanged
  2. onMeasure (古い幅)
  3. onLayout
  4. onMeasure (新しい幅)
  5. onSizeChanged
  6. onLayout
  7. onDraw

レイアウトが間違っているとこんな流れが見える

正しくない:

  1. onMeasure (新しい幅)
  2. onSizeChanged
  3. onLayout
  4. onDraw
  5. onConfigurationChanged
  6. onMeasure (新しい幅)
  7. onLayout
  8. onDraw

ディスパッチされるメッセージを見ると、問題の一部がわかると思います: 3 つの重要なメッセージが投稿されているのがわかります:

  • MessageType 1003 --> mWinFrame の新しいサイズ
  • MessageType 1000 --> 新しいメジャー/レイアウト パス (mWinFrame のサイズを使用)
  • MessageType 118 --> 構成の変更、onConfigurationChanged のキックオフ。

レイアウトが正しい場合、順序は 118、1003、1000 のようです。間違っている場合、順序は 1003、1000、118 のように見えるため、onConfigurationChanged が発生する前に新しい幅で測定されます。

おまけに、レイアウトが正しくない場合、階層ビューアーをアタッチして階層をダンプするとすぐに正しくなりますが、onPreDraw で再レイアウトや無効化を何度要求しても正しくなりません。

質問:

1) 順不同の呼び出しがあったとしても、最終的に onConfigurationChanged を取得し、新しい幅と高さで発生する再レイアウトを要求しますが、なぜ画面が更新されないのでしょうか?

2) これらのメッセージの投稿順序が時間の経過とともに変化するのはなぜですか? 私はこれを新しい起動時に見たことはありませんが、電話/エミュレーターが「しばらく実行されている」ときに見始めます。

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

android - Webview の向きが機能しない

これが私のコードです。向きを除いてすべてがうまく機能します。電話を回転させるたびにリロードされ、ホームページにリロードされます。それは苦痛です。誰でも問題がどこにあるのか教えてください。

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

ipad - ランドスケープ iPad はポートレートでビューを表示し、すぐにランドスケープに回転します

iPad 用に作成しているアプリケーションに少し問題があります。縦向きモードで固定されているビューがいくつかあり、縦向きモードまたは横向きモードで動作するビューもあります。すべて問題ありません-shouldAutorotateToInterfaceOrientation: があり、正しい結果が得られ、ビューは最終的に正しい方向になります。

「最終的に」と言うのは、デバイスを横向きモードにすると、いくつかのビューがこの奇妙な動作をするためです。それらに切り替えると、縦向きモードになり、目に見える回転が横向きモードになります。かなり速いですが、目に見えてイライラします。奇妙なことに、3 つのビューのうちの 2 つだけで発生し、3 つ目のビューにはその動作がありません。それは一貫しています-「問題のある」ビューに行くたびに、同じ迷惑な動作が発生します。

他の誰かがこれを見たことがありますか?これを引き起こしているのは何ですか?

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

android - スタンバイから電話のロックを解除するときにAndroidアプリで自動画面回転を停止するにはどうすればよいですか?

常にランドスケープモードで実行したいAndroidアプリケーションがあります。

アプリを常にランドスケープモードに保つために、次のコードを実装しています。


アプリケーションマニフェストandroid:screenOrientation="landscape"での私のアクティビティ内

これにより、アプリケーションが起動し、アプリケーションの全期間にわたって横向きのビューが維持されるようです。完全!

ただし、HTC Aria(Android 2.1)でアプリを実行していて電話がロックされている場合、電話のロックを解除すると、アプリケーションがおそらく0.5秒間表示され、縦向きになり、すぐに横向きに戻ります。私の意見はすべて混乱していて、想像できるように専門家ではないように見えるので、それは非常にイライラします。これは、エミュレーターと実際の電話の両方で発生します。

電話のロックが解除されたときにアプリケーションが一時的に回転しないようにする方法を知っている人はいますか?

追加:
onConfigurationChanged()をオーバーライドしようとしましたが、成功しませんでした。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);を入れてみました。onResume()に入力しますが、電話のロックが解除されている場合、アプリは1秒間間違った向きとして表示されます。

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

iphone - TabBarController内のModalViewController回転の問題

なぜこの問題が発生しているのかよくわかりませんが、私は…基本的にnavigationController、タブの1つにが付いたTabrバーコントローラーを持っています。この特定のタブでは、ユーザーがデバイスを回転させて、元のビューを回転させたのではなく、まったく異なるビューを表示できるようにしたいと思います。

これを(フルスクリーンで)達成するためLandscapeViewControllerに、デバイスが横向きのときにモーダルに提示するものがあります。提示すると問題が発生しmodalViewControllerます…</p>

また、LandscapeViewControllerユーザーがポートレートモードに戻ったときに自分自身を却下できるように、向きも確認します。しかし、私がそれを提示すると、それがポートレートモードに入るというコールバックを受け取り、それは完全にそれを台無しにします!

何が起こっているのかを明確にするためのコードとログステートメントは次のとおりです。

PortraitViewController

LandscapeViewController

これはログテキストです:

ノルムゴーイングランドスケープ

2010-08-24 15:29:40.024アプリ[32461:207]が発表されました

2010-08-24 15:29:40.026 App [32461:207]モーダルがポートレートになります

2010-08-24 15:29:40.026アプリ[32461:207]代理人に電話をかけて解雇

2010-08-24 15:29:40.027 App [32461:207]デリゲートが呼び出されました

縦向きで回転するとわかるように、を表示することで正しい動作をしますがlandscapevc、縦向きであると見なして却下しようとします。

誰かが私がどこで間違っているのか見ることができますか?(そして、これの長さの方針ですが、コードのフォーマットはそうでなければ正しく機能しません。)

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

iphone - ipad の回転はビュー内の要素を非表示にします!

OK、これは非常に基本的な iPad アプリです。これは私が始めたばかりで、すでに問題になっています。私はiPhoneアプリをやっていましたが、それでもローテーションを実装したことはありません..ここに問題があります。これは、次のようなインターフェイス ビルダーを使用したシンプルなビューベースのアプリ ビルドです。

代替テキスト

アプリを実行すると、垂直方向には次のような両方の要素があります:

代替テキスト

ただし、向きが水平に変わると、アプリは上部にあるラベルを非表示にします..: 代替テキスト

提案してください!

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

android - 複数のDatePickers、画面が回転すると強制的に閉じる

これは私の最初のAndroidアプリであり、これ以前はJavaの知識がまったくありませんでした。

私は次のコードを使用しました(別の質問で、Adam L.によって見つかりました)。28個のタイムピッカーがあり、コードを少し変更した後はうまく機能しました。
しかし、私が気付いたのは、timepickerdialog(またはここに表示されているコードを使用している場合はdatepickerdialog)にいるときに強制的に閉じ(nullpointerexception)、画面の向きを変更することです。
onDestroyで情報を保存し、onStartで再度復元する必要があると思いますが、これを実現する方法がわかりません。
私自身のコードではtimepickerdialogsを使用していますが、Adam L.のコードはよりクリーンなので、そこで問題を解決すると、私自身の問題も解決されます。

これはEclipseのlogcatの興味深い部分だと思います。

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

iphone - ポートレートに回転するときに、2つのビュー間でクロスディゾルブさせるにはどうすればよいですか?

I have a separate landscape view of a clock i've made and I want this to cross dissolve in when the phone is rotated to landscape, and then cross dissolve back when it returns to portrait, but when I've tried this in different ways, i've been having problems.

Suggestions on how I can do this?

0 投票する
0 に答える
175 参照

iphone - ビューを回転するときのモーダルダイアログの問題

回転できる子ビュー(ルートではなく、ビューAとします)があります。また、モーダルビュー(ビューMとします)が表示され、サーバーからデータが受信されます。私たちのQAは、そのビューAが回転しているときにデータが来ると、モーダルビューMは表示されないことを発見しました。実際、モーダルビューを表示するコードが実行され、アプリはルートビューに移動しますが、ユーザーにはモーダルビューは表示されません。

モーダルビューMは、次のコードで表示されます。

モーダルビューを表示する前にルートビューへのナビゲーションを実行するには、遅延が必要です。そうしないと、アプリがクラッシュして内部例外が発生します。

また、横向きモードのビューAにはナビゲーションバーがなく、(viewWillDisappearで)消えたときに復元されますが、この場合、ナビゲーションバーは表示されません。

私はそれを修正する方法がわからないので、この問題について私を助けてください。