問題タブ [android-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 投票する
3 に答える
2553 参照

android - ProgressDialogと向きの変更を伴うAsyncTask

数日間の絶望的な日々の後、私はついにほとんど実用的な例を作成しました。

目標: onCreateで、AsyncTaskでXMLファイルをダウンロードして解析し、進行状況ダイアログを表示し、UIを更新して、ダイアログを閉じます。

問題:向きが変わると、アクティビティが再開され、AsyncTaskはそれへの参照を失います。それについてはたくさんの質問やブログがあります。しかし、なぜこの特定のソリューションが機能しないのかわかりません。または、この場合、Androidがダイアログを処理する方法。

状態:アプリを起動すると、すべて問題ありません。デバイスを回転させたり、メニューから手動でタスクを再開したりできます。しかし、タスクが終了し、向きを再度変更すると、ダイアログが(期待どおりに)ポップアップし、他に何も起こりません。進行状況の変更、ダイアログの却下はありません。AsyncTaskは正常に終了します。

コード:

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

android - 向きの変更時に onLayout と onSizeChanged が 2 回呼び出されるのはなぜですか?

アクティビティからの構成変更を処理するときに、onLayout と onSizeChanged が横向きから縦向きまたは縦向きから横向きに変更された直後に2 回連続して呼び出されることに気付きました。さらに、最初の onLayout/onSizeChanged には古い寸法 (回転前) が含まれ、2 番目の onLayout/onSizeChanged には新しい(正しい) 寸法が含まれます。

理由、および/またはこれを回避する方法を知っている人はいますか? onConfigurationChangedおそらく、画面サイズの変更は、構成の変更後かなり時間がかかるようです。つまり、が呼び出されたときに構成の変更直後に寸法が正しくありません

以下のコードのデバッグ出力は、縦向きから横向きに回転した後の onLayout/onSizeChanged 呼び出しの両方を示しています (デバイスは 540x960 であるため、横向きの幅は 960 で、縦向きの幅は 540 であることに注意してください)。

また、最初の onSizeChanged の oldwidth と oldheight が 0 であることにも注意してください。これは、ビュー階層に追加されたばかりであることを示していますが、ランドスケープの寸法が正しくありません!

この動作を示すコードは次のとおりです。

MyActivity.java

MyHorizo​​ntalScrollView.java

AndroidManifest.xml

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

android - Android サービスで向きの変更をテストする方法はありますか?

setRequestedOrientation はアクティビティでのみ機能します。IWindowManager はずっと前に廃止されました。今回はGoogleはあまり役に立ちませんでした。

何かアドバイスはありますか?

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

android - 向きを変更するためにレイアウトのサイズを変更しますか?

普通:

ここに画像の説明を入力

風景:

ここに画像の説明を入力

ランドスケープ モードのときに、ListView が画面上で他のものとどのように重なっているかを確認してください。どうすればこれが起こらないようにできますか?

XML:

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

android - 実行時に向きを変更する

私はアンドロイドに不慣れです私の質問は、プログラムで向きを変えることは可能ですか?はいの場合、どうすればそれを行うことができますか?

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

android - 向きが変わったときにレイアウトを変更するエラー

向きが変わったときにアプリでレイアウトを変更しようとしています。これは私が持っているコードです:

ライン上

このエラーが発生します:

「この行の複数のマーカー:

-構文エラー。「}」を挿入してMethodBodyを完成させます

-android.app.Activity.onCreateをオーバーライドします"

また、向きの変更時にアクティビティを再開する必要がないように変更する方法はありますか?私はそれを持っているので、Facebookはアプリの起動時にユーザーのログインの詳細をチェックし、向きが変わるたびにそれを再チェックする必要があります。

編集:

では、コードは次のようになりますか?

または、setContentBasedOnLayoutセクションを削除して、onConfigurationChangedコードに置き換えますか?

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

android - Androidのビューとカスタムの向きの変更、処理するための最良の方法は何ですか?

複数のビューを持つAndroidアプリがあります。android:configChanges="keyboardHidden|orientation|screenSize"アクティビティを宣言して、自動方向切り替えを無効にしました。

Q1)ビューを再度アクティブ化するにはどうすればよいonConfigurationChanged()ですか?setContentViewメソッドを使用してコンテンツビューをリセットする必要があるようです。レイアウトの横向き/縦向きバージョンを膨らませる必要があることをビューに通知する別の方法はありますか?states/modeless一部のビューには、いつでも表示される可能性のある非常に複雑なダイアログなどが含まれているため、ビューオブジェクトを削除して再インスタンス化すると、正しく聞こえません。

Q2)onConfigurationChanged()実際にアクティブにする必要があるビュー、つまり方向変更が開始されたときにフォーカスされたビューを知るための最良の方法は何ですか?getCurrentFocus()時々nullになる可能性があるので、私は頼りたくありません。

0 投票する
5 に答える
17553 参照

android - カメラでポートレートモードを強制する

インテントを使用してカメラを呼び出し、画像をクリックしています。現在、私はエミュレーターを使用しており、カメラにポートレートモードで写真をクリックさせたいと考えています(アプリが動作しているビデオをキャプチャする必要があるため、向きの変更は見栄えが悪くなります)が、カメラの画面は横向きに表示され、その他のすべてのアクティビティを呼び出しますonActivityResult().

カメラ画面

画像をクリックすると、アクティビティレイアウトが次のような横向きモードで表示されます。 ここに画像の説明を入力してください

以前のすべてのアクティビティは縦向きで正しく表示されています。追加してみました

上記のアクティビティにアクセスできますが、役に立ちません。ただし、家に帰って再開すると、縦向きで正しく表示されます。

では、ポートレートモードを強制するにはどうすればよいですか?

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

android - Android - 縦向きは機能、横向きは空白

垂直方向で期待どおりに機能する ViewPagerIndicator を実装しています。実行時に切り替える (物理的に電話を回転させる) か、アプリが水平モードで起動する (アプリが起動する前に電話が水平であった) ときに、水平方向でテストすると、ViewPagerIndicator があるべき場所に空白のスペースができます。layout/main.xml と layout-land/main.xml があり、いくつかのボタンが期待どおりに表示されます (垂直モードでは垂直に、水平モードではグリッドとして積み重ねられます)。「編集」ボタンを押すと、編集アクティビティが起動します。

edit.xml:

ViewPagerIndicator が水平モードで表示されない理由について何か考えはありますか? さらに情報が必要ですか?

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

android - Android-リストの内容を効果的に保存/更新し、ローテーションを処理する

私は、リストフラグメントにインターネットからのデータを取り込むアプリケーションに取り組んでいます。リストの内容は、ユーザーが現在表示しているタブに基づいて変更されることが多く、ユーザーが最後に到達すると(ページネーション)、追加のアイテムがリストに追加されます。

現在、listfragmentはarrayadapterに基づいています。ユーザーがタブを変更し、新しいアイテムが追加されると、アダプターの内容がクリアされます。ユーザーがリストの最後に到達すると、現在のアダプターにさらに取引が追加されます。

現在の実装には複数の問題があります。

1.ユーザーが再起動すると、アプリケーションデータがインターネットから正常にダウンロードされても、リストが空のままになることがあります。これは、アプリケーションを起動してから他の多くのアプリケーションを使用した後、このアプリケーションに戻る前に発生する傾向があります。アプリケーションを動作状態に戻す唯一の方法は、アプリケーションを強制的に閉じることです。

2.デフォルトでは、画面が回転すると、Androidはoncreateを使用してビューを再度作成します。これにより、インターネットからデータが再度ダウンロードされます。現在、これを克服するために、回転の変更を自分で処理します(onConfigurationChanged()を使用)。これは、推奨される方法ではないことがわかっています。

したがって、頻繁に更新する必要があることを念頭に置いて、arrayadapterをサポートするarraylistをどのように保存するのが最適ですか。また、ローテーションの変更中にarraylistの内容を保存する必要があります。

現在のコードが役立つかどうか教えてください。