我有一个EditText文本字段。当我单击它时,光标将设置为用户触摸的位置。
我知道将选择内容设置为“编辑文本”末尾的这种方法:
myEditText.setSelection(myEditText.getText().length());
上面的功能有效,但是当用户点击文本框时,它会被覆盖。光标闪烁到编辑文本的末尾,然后捕捉到用户点击的位置。
似乎OnTouch或OnClick在覆盖它之后发生了一些事件。
如何确保当用户单击EditText时,它保持在文件末尾,直到再次单独点击?
答案 0 :(得分:1)
为此使用onFocusChangeListener
,一旦edittext获得用户关注,就触发一条语句:
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
myEditText.setSelection(myEditText.getText().length());
}
}
});
更新:
onTouchListener
?我相信这更合适:
myEditText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(MotionEvent.ACTION_UP == event.getAction()) {
myEditText.setSelection(myEditText.getText().length());
}
return true;
}
});
另一种选择可能是与侦听器之一一起禁用xml中的可聚焦触摸:
<EditText android:focusableInTouchMode="false" />
答案 1 :(得分:0)
解决方案:我将其放在OnTouch覆盖中,但它可以在任何地方使用
bioEditText.scrollTo(0, bioEditText.getBottom());