問題タブ [orientation-changes]
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.
android - Android:効率的な画面回転処理
Androidでは、画面の向きが(横向きと縦向きの間で)変更されると、onCreate
メソッドが呼び出されます。このメソッドは、適切に処理されない場合、結果が単純にレイアウトを変更し、同じ情報をすべて保持している場合に、アクティビティ全体を再作成します。
私はこれを解決するいくつかの方法を知っていますが、最も効率的な方法に興味があります。
1)メソッドをオーバーライドしonConfigurationChanged()
て空のままにして、向きの変更を処理することをマニフェストに伝えます。
2)onSaveInstanceState()
ここにデータを上書きして保存し、再入力しますonCreate()
onPause()
3)データのバンドルを作成してに送信するオーバーライドonSaveInstanceState()
明らかに、これらはすべてオプションですが、どちらがより良い方法です(小、中、大量のデータ)
ありがとうございました
android - 電話の向きを取得しますが、画面の向きを縦向きに修正します
電話の向きを取得したいのですが、画面の向きを縦向きに保ちます。したがって、ユーザーが電話を横向きまたは縦向きにしても、ビューは同じままですが、横向きか縦向きかを取得できます。
アクティビティをandroid:screenOrientation="portrait"に設定すると両方が修正されますが、電話の向きを検出することはできません
誰かがそれを修正する方法を知っていますか?
android - Androidでフラグメントの向きの変化を検出するにはどうすればよいですか?
私は、アクティビティとそのアクティビティの多くのフラグメントを持つ Android アプリを開発中です。たくさんあるフラグメントのうち、2つだけ向きを確認して変更したい。
どうすればいいですか?すべてではなく、これら 2 つのフラグメントのみが方向を変更するようにします。これには OrientationEventListener を使用する必要があることを知りましたが、これを使用する方法がわかりません。
私はモバイル デバイス アプリと Android 2.2 およびフラグメント サポート ファイルに取り組んでいます。
iphone - senchatouch::向きの変化を抑える方法
iOSのsencha-tpuch/phonegapアプリで、使用しているデバイスでアプリの向きが変わらないようにしたい。sencha-touchの向きの変化をどのように抑制できますか、または正確に何をオーバーライドしますか?thnx!
android - 向きの変更後にダイアログのビューにフォーカスを戻す
One Gulli Bulls Screen Orientation Change – Saving Focusの例を使用して、向きが変わったときにフォーカスを取り戻します。
マイ アクティビティAddGearbox
で、ダイアログが開きますCustomizeDialog
(アクティビティでtheme.dialog
)。
ダイアログにはいくつかのテキストボックスがあります。でonSaveInstanceState
必要なものを保存し、で復元できrestoreDialog
ます。しかし、焦点は元に戻りません。
向きが変わったときにフォーカスがあるビューの ID をログに記録していますが、そのビューはダイアログ自体ではなく、ダイアログを表示しているアクティビティにあると思いますか?
何をすべきか?
AddGearbox.java
CustomizeDialog.java
android - onConfigurationChanged で onCreate と同じメソッドを使用していますか?
onCreate
このように見えるとしましょう
: onConfigurationChanged
_
- 同じに見える必要があります(以下を参照)、
onCreate
メソッドやメソッドを使用する必要はありません- 私は何かを省略しましたか?
これが他の方法です。
android - 別のアクティビティから初めて戻ったときに onConfigurationChanged が呼び出されていない
次の問題があります。携帯電話を縦向きから横向きに変更すると、画像が消えてしまいます。私が現在の活動を行っていて、方向を変えると、それは完全にうまく機能します。別のアクティビティに行って戻ってきても、まったく問題なく動作します。しかし問題は、メイン ページに戻った後、最初に方向を変更したときに onConfigurationChanged() が呼び出されないことです。戻ったときに画像が表示される/正しく表示されない場合がありますが、最初に向きを変更したときに onConfigurationChanged() が呼び出されず、向きを2回変更するまで画像が表示されます/表示されません。皆さんの助けをいただければ幸いです。ここに私のコードのいくつかの部分があります。configChange- orientation パーミッションを既にマニフェストに入れているので、問題ありません。
ありがとう!
android - デバイスの向きの変更時にアクティビティの再起動を防ぐ方法は、常にではなく、一定の期間のみです
私の活動では、データベースを開く、sd カードにファイルを書き込むなど、oncreate() で多くの処理が行われます。ただし、この重い処理はすべて、アクティビティが初めて起動されたときに 1 回だけ発生し、その後は発生しません。これを達成するために非同期タスクを使用しています。
次のコードを使用して、デバイス構成の変更中にアクティビティが再開されないようにしています。
初期設定時に一度だけ端末の向きが変わったことによるアクティビティの再起動を無効化し、それ以降はアクティビティの再起動を有効にしたい。どうすればこれを達成できますか?
android - 方向変更後のアクティビティの 2 番目のインスタンス
向きを変更すると、アプリケーションで奇妙な動作が発生します。
通常の動作:
アプリを開くと、ホーム アクティビティが開始されます。次のアクティビティ (ギャラリー) に移動すると、正常に開始されます (右から左へのスライドイン アニメーション)。戻るキーを使用して戻ると、現在のアクティビティ (ギャラリー) が終了します (左から右へのスライド アウト アニメーション)。
奇妙な振る舞い:
- アプリを縦向きモードで起動し、向きを横向きに変更すると。次に、ホーム アクティビティの 2 回目のインスタンスのようなものがあります。ランドスケープモードで戻るボタンを押しても、向きを変更しない場合のようにアプリを閉じないため (ホームアクティビティは私のアプリの最初のアクティビティです)、左から右にスライドするアニメーションを作成します (新しいアクティビティを開始するなど)。ホーム アクティビティ (ただし、別のインスタンスだと思います) を再度表示します。戻るボタンをもう一度押すと、アプリが閉じます。
- アプリを横向きモードで起動し、向きを縦向きモードに変更すると、[戻る] ボタンを押すと、右から左へのスライド アニメーションが表示され (アクティビティを閉じるように)、ホーム アクティビティが再び表示されます。
- アプリを起動し、縦、横、縦の 2 つの向きを変更すると、戻るボタンでアプリが閉じます。
つまり、ランドスケープ モードとポートレート モードは 2 つの異なるアクティビティのように扱われます。
私は を使用しないandroid:configChanges="orientation|keyboardHidden|screenSize"
ので、向きの変更は通常の Android アクティビティのライフサイクルに従い、「古い」ポートレート (またはランドスケープ) バージョンのアクティビティを破棄する必要があります。
私のアクティビティは から継承してFragmentActivity
います。私はonSaveInstanceState
parceable (アクティビティへの参照を含まない) を渡すために使用しており、onRetainCustomNonConfigurationInstance
( read here ) を使用して複数AsyncTask
の s を渡しています。ただし、これらのタスクのすべての参照 (存在する場合) は で破棄されonRetainCustomNonConfigurationInstance
、後で (新しく作成されたアクティビティで) 復元されgetLastCustomNonConfigurationInstance
ます。
この動作を引き起こす可能性のあるアイデアはありますか?
編集:
マニフェスト ファイルのアクティビティ宣言:
<activity android:name=".activities.smartphone.HomeSmartphone" android:label="@string/app_name"></activity>
HomeSmartphone は Home を
拡張します Home は MyFragmentActivityを拡張します
MyFragmentActivity は android.support.v4.app.FragmentActivity を拡張 します
MyFragmentActivity では、onCreate、onRestart、onStart、onSaveInstanceState、onPause、onResume、onStop、onDestroy で、アプリケーション コンテキストへの参照を保持するだけの追跡クラスの静的メソッドを呼び出して、いくつかのログ記録/追跡を行います。アクティビティのコンテキストではありません。
Home は、HomeSmartphone と HomeTablet によって拡張される抽象クラスです。これら 2 つのクラスは、異なるレイアウトで特別な読み込み/更新/初期化を行います。
ほとんどのタスクは、抽象 Home クラスで実行されます。
これが役に立てば幸いです?!
android - Android と向きの変更
私はこのビットのjQueryを持っています:
デバイスの向きを変更すると、アラートがトリガーされます。iOS で動作します。Android では動作しません。なんで?
JSBIN: http://jsbin.com/esacir
おそらくAndroidは本体でそのイベントを発生させないと思ったので、「ウィンドウ」も試しました:http://jsbin.com/esacir/3まだうまくいきません。