問題タブ [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.
android - MapView の回転/向きの問題
マップの上部、下部、および側面にいくつかの追加フィールドがある MapActivity に取り組んでいます。これらすべての View コンポーネントは、1 つの main.xml ファイルで利用できます。どちらの方向にもレイアウトランドがあり、ポートレートディレクトリにも同じIDのmain.xmlを含む両方のフォルダーがあります。
私はandroidManifest.xmlでandroid:ConfigChanegを使用しており、メソッドonConfigChange(Configuration newConfig)をオーバーライドしています
しかし、画面が回転/向きを変更すると、例外が発生します。MapActivity は MapView を 1 つしか持つことができません。この問題を解決する方法を教えてください。
前もって感謝します....
android - なぜdismissDialog、removeDialog、またはdialog.dismissがonDestroyまたはonPauseで機能しないのですか?
configChanges を使用して向きの変更を手動で処理することを指定せずにダイアログを管理する方法を、私の人生では理解できません。だから、あなたがこの AndroidManifest を持っているとしましょう:
次の MainActivity.java を使用します。
そしてこのレイアウト(main.xml)
onDestroy から呼び出すか onPause から呼び出すかは関係ないようです。方向が切り替わった後、ダイアログが再び表示されます。しかし、なぜ?私はそれを去るように言いました。removeDialog/dismissDialog を呼び出すと、向きが変わる前に呼び出されても何もしません。これがなぜなのか、一生わからない。私が知っているこれを取り除く唯一の方法は、次を使用して向きの変更を自分で処理することです
新しい作業方法は、まだアップグレードしていない FragmentDialog のものを使用することであり、そのためにアプリ全体を書き直す準備ができていません。これが機能しないのは奇妙に思えます。
これは、ユーザーが (スピナーのデータを更新するために) リモート サーバーから一部のデータを取得するように要求できるアプリで発生している現実世界の問題の例にすぎず、方向を切り替えると、読み込みダイアログが消えません。 android:configChanges オプションで向きの変更を処理する以外に、これに対する修正はないようです。私にはできることですが、それをしなければならないのはばかげているように思えます。
-- 更新 -- ダイアログを閉じるボタンを削除しました。これは不要であり、ダイアログが一番上にあるためクリックすることはできません。
再現するには、アプリを起動し、ダイアログを開くボタンをクリックしてから、携帯電話を回転させます。
android - 向き変更バグ
活動で使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
しています。
アクティビティ間で変更すると、アプリケーションは約 0.2 秒などの非常に短い時間だけランドスケープ モードに変わります。横長の変更後、縦長に戻りますが、非常に厄介なバグです。
なぜそれが起こっているのですか?PORTRAIT 方向のみを使用するようにアプリケーションを制限するより良い方法はありますか?
0.2 秒の派手な向きの変更は必要ありません。
android - オリエンテーション タブレット vs スマートフォン
それで、電話デバイス、サムスンのタブレットでテストしていたアプリをテストしました。
アプリケーションはアクセルモーターのデータに基づいてグラフィックを更新し、タブレットでは横向きを縦向きとして扱っていることに気付きました.自然に縦向きモードのデバイスでは問題ありません..
両方で機能するようにこれを調整する方法についてのアイデア:
}
}
android - VideoView & フルスクリーン & 向きの変更 - Android
ビデオプレーヤーが埋め込まれた電子書籍リーダーを実装しました。プレーヤーからフルスクリーンモードを切り替えるオプションが必要です。
私の質問は次のとおりです。
動画をフルスクリーンで再生し、ユーザーがこの状態から前に読んでいたページに戻り、動画の現在の時間を保持できるようにするのに最適な方法です。
私が処理する必要がある別の複雑な状況は次のとおりです。
縦向きと横向きではページの視覚化が異なります。ユーザーがフルスクリーンを縦向きに切り替えてデバイスを回転させると、ビデオは横向きモードになり、ビデオを画面に合わせて再スケーリングする必要がありますが、ユーザーがこのページから戻った場合は、もう一度ポートレートに戻ります。
必要に応じて、より多くの情報を提供できます。前もって感謝します
android - Androidテーブルの向きの変更を停止するにはどうすればよいですか?
こんにちは、タブレット版の Android アプリケーションを開発しています。ここで向きの問題に直面しているため、アプリケーションを縦向きモードのみにしたいと考えています。そのために、アプリケーションのすべてのアクティビティに対して、以下のスニペットのような属性を使用しました。
縦向きモードでのテスト中、アプリケーションは完全に実行されています。ただし、横向きのタブレットの物理的な位置でアプリケーションをテストするときは良くありません。最初に横向きになり、すぐに縦向きになります。
プログラムでアクティビティをポートレートで作成しましたが、効果はありませんでした。助けてください。これが私のプログラムによるオリエンテーションの修正です
Motoroloデバイスでテストしました
アプリケーションが横向きになるのを避けるように提案してください。
android - フラグメント、方向の変更、フラグメントのバックスタック
現在、ContentPaneとActionBarPaneで構成されるレイアウトがあり、それぞれがのコンテナですFragment
。
各ContentPaneFragment
は、ファクトリメソッドを使用して独自のActionBarPaneをインスタンス化します。これにより、複雑なsFragment
を非常に簡単かつ迅速に開発できます。ActionBar
これは素晴らしくうまく機能しますが、向きを変えた後のバックスタックのトラバースに関するバグに遭遇しました。
私の「戻る」実装は次のようになります。
これはonBack()
、ContentPaneとそのActionBarの両方をはがします。
問題:Fragment Backstack
4つ以上(2つのContentPanesとそのActionBar)に到達し、方向を変更しても、 goBack()
2番目のActionBarはまだ存在します(の3番目Fragment
)Backstack
。
予想どおり、向きを変更しないと、正しいActionBar(Fragment
1)が表示されます。
ロギングでは、で4秒onBack()
から始まり、各「ポップ」が正常に呼び出され、残り2つだけになります(元のContentPaneとそのActionBar)。Fragment
Backstack
Fragments
前方および後方へのナビゲーションでは、ポップされたものではなく、元のActionBarが正しく使用されます。
オリエンテーション変更で添付されたフラグメントに発生するプロセスと、なぜこれがそのような奇妙な動作を引き起こすのかについて、誰かが知っていますか?
編集
次と同義の出力を提供します。
この出力は、正常な動作が存在する場合と誤った動作が存在する場合の両方で同じです...
android - 地平線を軸としてデバイスの角度を決定する -android
興味深い問題があります。ユーザーが携帯電話を横向き、縦向き、またはその間のどこに持っているかに関係なく、その角度を追跡しようとしています..
現在、SENSOR_ORIENTATION を使用して、ヨー、ロール、およびピッチを取得しています。また、ヨーを使用してz軸上のユーザーのビューポートの角度を取得しようとしており、ユーザーのロール(横、縦、またはその間)を修正するために、いくつかの簡単な計算を行いました..:
このコードはヨーを修正し、ロール位置が何であれ適切な角度を与えてくれます..
しかし、この種の数学はピッチを修正していないようです. 携帯電話を床に対して垂直に持っている場合、ロールやヨーに関係なく、常にピッチを 0 にしたいです。携帯電話の背面を空に向けて地面と平行にまっすぐに向けた場合、90 になりたいです。地面 -90;
ピッチロールとヨーを取得する方法は次のとおりです。
現在、次の結果が得られます。
ピッチ = -90ロール = 0 ;
ピッチ = 0ロール = 90 ;
ピッチ = 90ロール = -20 ;
ピッチ = 0ロール = -90 ;
これらの位置のいずれかで 0 のピッチを取得しようとしていますが、ユーザーが HORIZON 軸で電話を傾けると、それぞれ -90 から 90 の間のピッチを取得しようとしていますか?
何か案は?ああ、私のアプリケーションが横向きモードにロックされていることを追加する必要があります..
android - ScreenOrientationをロックする
ウィキペディアのページを読めるアプリを作っています。
電話を縦向きから横向きに、またはその逆に回転させるたびにアイコンを表示したい。ユーザーが必要に応じて画面の向きをロックできるようにします。そうでない場合は、センサーデータに従って画面の向きをロックします。これは、GooglePlayの一部のアプリによって実装されている機能です。たとえば-Pocket
これを行うには、私はオーバーライドしました
ここで、(orientation_dirは共有設定に保存されている方向の値であり、コードをデバッグしたので正しい)を使用してロックされた構成を設定している場合。
次に、向きは正しく設定されますが、電話が回転したときにonConfigurationChanged()メソッドは呼び出されません。
このように向きを設定すると
その場合、目的の方向が設定されません。電話はセンサーデータに従って向きをリセットします。
設定が間違っているのではないかと思ったので、メソッドでスーパーを呼び出さなくても試しましたが、「スーパーが呼び出されません」という例外が発生します。
私は過去2日間試していますが、この問題の解決策はありません。
android - Android で向きを変更してもデータを保持する最良の方法
私の教育用アプリケーションには、横向きモードと縦向きモードをサポートする 6 ~ 7 個のタブを持つタブ ホストがあります。タブに関連付けられたすべてのアクティビティで、選択用のチェックボックスと評価バー、ボタンなどを使用して、リストビューでいくつかの学生レコードを表示しています.Webサービス呼び出しを介してリモートサーバーからこれらの学生レコードを取得しています. 何らかの理由で、私のアプリは、いくつかのアクション/検索を実行した後、いくつかのボタンを含む 1 つの初期相対レイアウトを表示します。リスト ビューでリスト項目またはボタンをクリックすると、リスト ビューに結果が表示されます。他のレイアウトを表示しています。これは、タブ ホストのすべてのアクティビティに適用されます。
ユーザーが向きを変更した場合、同じ状態または同じ画面を復元する必要があります。つまり、ユーザーが以前にレコードのリストを表示していた場合は、レコードのリストを表示する必要があり、初期の場合は初期のみを表示する必要があります。向きの変更やオーバーライド時に Android の破棄アクティビティを強制的に停止したくありませんpublic Object onRetainNonConfigurationInstance ()
。一部のブログや Android ドキュメントで示唆されているように、これらは後の操作で問題を引き起こす可能性があります。私がしたことは、どの画面 1 または 2 または 3、テキスト ビュー ラベル、すべてのプリミティブ データ型などの必要なすべての情報をonSaveInstanceState
バンドルに保存し、それらを復元することだけです。onRestoreInstanceState
. また、カスタム検索結果のオブジェクト配列をファイルに書き込み、onSaveInstanceState と onRestoreInstanceStates の間で取得して削除しています。私の検索結果には何百ものオブジェクトがあり、大量のプリミティブ データ型リストを保存しているため、ユーザーがデバイスをすばやく回転させると、ヒープ サイズが急速に増加します。
それに対処する最善の方法は何ですか
1) onSaveInstanceState と onRestoreInstanceStates を永続化すると、画面がしばらく空白になり、ヒープ サイズが増加します。ユーザーが複数回回転したときに、必ずしも保存と復元を実行する必要はありません。
2)必要なすべてのデータを静的な場所に保持します。これは、アクティビティに対してローカルではないため、破壊されません
3) Application クラスを拡張して必要なすべてのデータを保持しますか?