誰かがこのイベントをどのように捉えるか教えてもらえますか? 携帯電話を横向きに回転させると、アプリが正しく表示されない可能性があります。 ありがとう、 DuyBlackBerry Torch 9800 OS 6の回転スクリーンイベントを捕捉するには?
3
A
答えて
1
これが起こると、BB UIフレームワークは画面に対して確定的にlayout(int width, int height)
を呼び出します。 MainScreen
もManager
であるため、BB UIフレームワークが描画を開始する前に、すべての子フィールドをレイアウトする必要があります。
したがって、layout()
では、現在の方向の状態(net.rim.device.api.system.Display.getOrientation()
)を追跡し、前の状態と比較することができます。変更された場合、デバイスは回転したばかりです。
0
私はArhimedによって提案された方法とは異なる方法を考え出しました。これはうまくいくようです(デバイスを傾けたときに別の方法でカスタムフィールドを描くために使用します)。私はこの方法
protected void myOrientation() {
// portrait is true when dh > dw
boolean portrait = (Display.getOrientation() == Display.ORIENTATION_PORTRAIT);
// dw and dh = real horizontal and vertical dimensions of display - regardless of device orientation
int dw = portrait ? Math.min(Display.getWidth(), Display.getHeight()) : Math.max(Display.getWidth(), Display.getHeight());
int dh = portrait ? Math.max(Display.getWidth(), Display.getHeight()) : Math.min(Display.getWidth(), Display.getHeight());
// here I draw my custom Field
invalidate();
}
を持っており、コンストラクタで、それがすべての加速度センサーイベントで呼び出され、その後、一度それを呼び出す:
public class MyScreen extends MainScreen implements AccelerometerListener {
private MyScreen() {
if (AccelerometerSensor.isSupported()) {
orientationChannel = AccelerometerSensor.openOrientationDataChannel(Application.getApplication());
orientationChannel.addAccelerometerListener(this);
}
....
}
public void onData(AccelerometerData accData) {
if (old != accData.getOrientation()) {
myField.myOrientation();
}
}
を多分これは、あなたとイエスができます - 場合は、あなたがチェックする必要がありますキーボードはトーチ
よろしく アレックス
関連する問題
- 1. BlackBerry Torch 9800 WebkitブラウザでJavascriptイベントが発生する
- 2. Blackberryアプリ(SDK 6.0、Torch 9800)で地図が表示されない
- 3. Blackberry OS 6&Websockets
- 4. Blackberry 6アンカーdocument.locationが動作しない
- 5. BlackBerry Torchスクロールの問題
- 6. 複数のグループをPython正規表現で捕捉N回
- 7. 迷惑メールネットワークトラフィックの捕捉
- 8. TLSIOExceptionがBlackberry Torch 9810および9860のHttpsに接続する
- 9. SaxParser.parseでレスポンスコードを捕捉する方法
- 10. Extjsイベントを捕捉する(コンボボックス)
- 11. 未捕捉ReferenceErrorを取得する
- 12. 捕捉基を有するRe.sub
- 13. アプリイベントをバックグラウンドで捕捉する
- 14. ラムダ微積分:捕捉回避の再帰的定義
- 15. BlackBerry OS 6で写真を撮らないでスキャンする
- 16. アプリケーションがクラッシュするBlackberry os7
- 17. ブロックの6辺を回転する
- 18. Java捕捉端末出力
- 19. event.keyCodeを捕捉して別のkeyCodeに変更するには?
- 20. 例外の捕捉順序は?
- 21. AliasMatchで捕捉するApacheリライトURL
- 22. RESTサービスからのエラーを捕捉するには?
- 23. FiddlerCoreをSeleniumと組み合わせてネットワークトラフィックを捕捉する
- 24. global.asaxでAJAX WebMethodエラーを捕捉するには?
- 25. PHPで外部イベントを捕捉するには?
- 26. InkCanvas、WPFで "Delete"キーボードイベントを捕捉するには?
- 27. コードでRuntimeExceptionsを捕捉するのはいつですか?
- 28. ファイルをダウンロードするときにエラーを捕捉する方法
- 29. HTMLオブジェクトのクリックイベントを捕捉する方法は?
- 30. Pivot_SelectionChangedでAutoSuggestBoxのイベントを捕捉する方法は?
上に滑らせる。しかし、我々は、MainScreenでレイアウト()関数をオーバーライドすることができませんでした。 BB devサイトでは、次のように述べています。タッチスクリーンの向きが変わったときに通知を受け取るnet.rim.device.api.ui.Managerクラスをインポートします。 net.rim.device.api.ui.Manager.sublayout(int、int)をオーバーライドします。保護されたボイドのサブレイアウト(int幅、int高さ){.. 私はしたが、私は画面を回転させると、シミュレータはコードに実行されませんでした。私はこれがシミュレータの問題か何かではありません。 とにかくありがとうございます。 –
Torch 9800は、スライダが開いているか閉じているかによって動作が異なる場合があります。おそらく、開いた/閉じたスライダの両方で試してみてください。 –