2017-11-14 21 views
0

ソフトキーボードのカーソル位置をランドスケープで取得する方法。ポートレートモードでは、OnTouchListenerを使用できますが、ランドスケープモードでは、OnTouchListenerはフルスクリーンのソフトキーボードでは機能しません。私は上記の風景のフルスクリーンキーボードの上に何を行うことができますどのように要するにランドスケープでソフトキーボードのカーソル位置を取得する方法

editText.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View view, MotionEvent motionEvent) { 
      cursorPosition = editText.getOffsetForPosition(motionEvent.getX(), motionEvent.getY()); // will give you the position of the nearest chracter. 
      return false; 
     } 
}); 

..あなたが正しいです

答えて

0

OnTouchListenerはのEditTextのフルスクリーンモードでは動作しません。ただし、カーソル位置が変更されたときに呼び出されるリスナーを使用すると便利です。これを行うには、EditTextを拡張し、そのonSelectionChangedメソッドをオーバーライド:SelectionSpanは、文字列に適用されるが、私は、ユーザーが触れた位置を望んでいるときonSelectionChanged`が使用されている `

public class CustomEditText extends EditText 
{ 
    public CustomEditText(Context context) 
    { 
     super(context); 
    } 

    public CustomEditText(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
    } 

    @Override 
    protected void onSelectionChanged(int selStart, int selEnd) 
    { 
     super.onSelectionChanged(selStart, selEnd); 
     // here you get cursor position change 
    } 
} 
+0

。これが私が最初に 'OnTouchListener'を使用している理由です。 – Ali

+0

詳細https://stackoverflow.com/a/22175787/6050536 – Ali

関連する問題