問題タブ [android-configchanges]
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 - setContentViewで設定されたレイアウトを再利用するには? アンドロイド
構成の変更が発生したときにandroid:configChanges="keyboardHidden|orientation|screenSize"
状態を失うことがないように、マニフェストで使用しようとしています。VideoView
これは、構成で自分でレイアウトを選択する必要があることを意味します。私が抱えている問題はonCreate
、ここで使用するビューを最初に初期化するときです。
適切なレイアウトを選択します。しかし、次のように構成変更でレイアウトを調整する必要がある場合:
レイアウトの同じインスタンスを使用するのではなく、再読み込みするため、VideoView
黒くなります。その後、ボタンを押すことができません。
初期レイアウトを再利用する方法はありますか? このようなビューをsetContentView(R.layout.activity_make_photo_video_land);
オブジェクトに設定しようとしましActivity activity
たが、IDE では許可されませんActivity is incompatible with void
。そのビューへの参照を取得できれば、それを再利用できるからです。または、私が見ていないこれを行う簡単な方法はありますか?
ありがとう。
android - 画像ビットマップが onSaveInstanceState と onRestoreInstanceState に保存されない
の構成に問題がありますImageView
。アプリからの写真撮影を統合するのに役立つコードをオンラインで見つけました。アプリを終了し、Android カメラに移動してから、写真を持って戻ってきます。ここから、 に配置しImageView
ます。構成の変更を追加するまで、すべてがうまくいきました。設定を変更すると画像が消えます。
この問題を克服するために、VideoView
(ビューと my を交互にImageView
) 状態を保存する方法を管理しましたが、保存するためのコード要件は画像とは異なります。これが私がこれまでに持っているものです。解決策を調査しようとしましたが、何も意味がありません。私のコードは不完全に見えますか?
ありがとう。
アップデート:
さらに調査すると、写真を撮っているときにカメラを回転させなければ、状態が保存されます。最初の向きが (写真を撮った後) アプリに戻ったときの向きと同じである場合、アプリ内の構成変更は正常に機能します。問題は、たとえばポートレート モードで開始した場合、写真ボタンをクリックすることです。これにより、Android カメラが表示されます。結局、横向きの写真が欲しいと判断したので、回転させて写真を撮りました。OK を押すと、アプリに戻ります。到着すると、現在横向きモードになっているため、ImageView
空白です。
また、 & e のmImageBitmap
内部でログを記録しましたが、両方とも null です。しかし、なぜ?カメラから戻ってくるまでビットマップが作成されないためでしょうか。では、構成の変更時にそれを保存するにはどうすればよいですか? 混乱している。onSaveInstanceState
onRestoreInstanceStat
私の2つの保存状態の方法:
参照用の完全なクラス MakePhotoVideo.java:
android - Android - 言語を動的に変更
私の Android アプリでは、デフォルトの言語を動的に変更したいと考えています。私はこの方法を実装しました:
マニフェストで、 MainActivity に次の行を追加しました。
私もこれを試しました:
このソリューションはうまく機能しますが、画面を回転させるとすぐにデフォルトの構成に戻り、言語が復元されます。
この問題を解決するにはどうすればよいですか?
android - レイアウト/フラグメントを更新して再読み込みせずにロケールを変更する
レイアウトをリロードせずにロケール/言語を変更するにはどうすればよいですか? ロケールを動的に変更するには、以下を実行する必要があります
しかし、私の場合、フラグメント内にフラグメントがあります。私のアプリ構造にActivity
は 8 つの置換可能なフラグメントがあり、各フラグメントには 4 ~ 5 つの置換可能な子フラグメントがあります。
また、メイン アクティビティの言語を変更するボタンがあります。そのため、ユーザーが言語を変更したときに特定のフラグメントをロードすることはほとんど不可能です。
上記のケースでロケールを変更する最善の方法を教えてください
android - android:configChanges="orientation|screenSize" がマニフェスト ファイルにある場合、ライフ サイクル アクティビティ メソッドが呼び出されない理由
onStart()
メソッド、、、、onResume()
をオーバーライドしましonStop()
た。コマンドを使用して、これらのメソッドがいつ呼び出されるかを監視しています。onPause()
MainActivity
log.d()
マニフェストで使用するandroid:configChanges="orientation|screenSize"
と、オーバーライドされたメソッドが呼び出されません。なぜそれが起こっているのですか?
java - 設定変更後にダイアログを閉じる
私は現在、ユーザーがポートレートモードでのみ操作できるBluetoothアプリケーションを作成しています。ただし、Bluetooth 接続が失われたことをユーザーに表示せざるを得ない構成変更の原因となる他の理由がいくつかあります。
デバイスに接続しているときに、パスワードを求めるダイアログが表示されます。このダイアログが表示されている間に構成の変更が発生した場合は、閉じたいと思います。したがって、 (保存されたインスタンスの状態が null でない場合)と同様にonSaveInstanceState
、ヘルパー メソッドを呼び出します。onDestroy
onCreate
ただし、ダイアログは引き続きユーザーに表示されます。同様の質問を読みましたが、この問題の解決策がわかりませんでした。
助けていただければ幸いです。前もって感謝します!
android - RecyclerView は、向きが横向きから縦向きに変更された後、上部ではなく中央にあります
フラグメントで recyclerview を使用しました。アクティビティの configChanges に向きが含まれている場合、電話の向きが横向きから縦向きに変わった後、リサイクラー ビューが画面の中央に表示されます。ただし、常に一番上にある必要があります。configChanges に向きが含まれていない場合、向きの変更時に常に一番上に表示されます。
何が原因か分かりますか?
これはアクティビティのレイアウトです
これは、上記のフレーム レイアウトを置き換えるフラグメント レイアウトです。