カスタム EditField を作成しましたが、スライダーが開いているときにカーソルに問題があります。
私が使用している EditField は EditField からサブクラス化され、 を使用してより良いスタイルを追加してFieldDecor.setVisualStateBorderAndBg( this );
いますが、機能は変更していません。ペイントでも を呼び出すだけsuper.paint( graphics );
です。私が変更した唯一の動作は、スライダーが閉じられたときの (フォーカス イベント中の) ソフト キーパッドの表示と非表示の呼び出しです。
問題は、アプリケーションがスライダーを開いた状態で開き、テキストが編集されている場合です。カーソルは、最初のフォーカスがあるべき場所に描画されますが、テキストが編集されている間、次のように同じ場所にとどまります。
スライダーが閉じている場合は問題ありません。また、スライダーを開いてキーボードを使用している場合も問題ありません。
カーソル位置は適切に設定および記憶されていますが、視覚的には更新されていません。への呼び出しを追加しinvalidate()
てオーバーライドしようとしupdate()
ましたが、成功しませんでした。
これは 9800 シミュレータでのみ発生する問題であり、8530 デバイスでは発生しないことに注意してください。
更新: これは、ダイレクト フォーカス イベント中にのみ発生します。トラックボール使用時は表示されません。