2017-11-14 22 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을 확장하고 onSelectionChanged 메소드를 오버라이드 (override) : 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